SYD8821是具有全球领先低功耗(RX 2.4mA @-94.5dBm灵敏度,TX 4.3mA @0dBm输出功率)的蓝牙低功耗SOC芯片,在极低电流下实现了优异的射频性能,搭配176kB SRAM,512kB flash,非常适合中高阶可穿戴、智能家居、物联网等低功耗应用。具体可咨询:http://www.sydtek.com/

CDialog::DoModal()

摘录于:https://blog.csdn.net/zqxf123456789/article/details/49914547

5.2 创建有模式对话框

使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递)。所以在使用对话框时其他窗口都不能接收用户输入。创建有模式对话框的方法是调用CDialog::DoModal()。下面的代码演示了这种用法:

CYourView::OnOpenDlg()
{CYourDlg dlg;int iRet=dlg.DoModal();
}

CDialog::DoModal()的返回值为IDOK,IDCANCEL。表明操作者在对话框上选择“确认”或是“取消”。由于在对话框销毁前DoModal不会返回,所以可以使用局部变量来引用对象。在退出函数体后对象同时也会被销毁。而对于无模式对话框则不能这样使用,下节5.3 创建无模式对话框中会详细讲解。

你需要根据DoModal()的返回值来决定你下一步的动作,而得到返回值也是使用有模式对话框的一个很大原因。

使用有模式对话框需要注意一些问题,比如说不要在一些反复出现的事件处理过程中生成有模式对话框,比如说在定时器中产生有模式对话框,因为在上一个对话框还未退出时,定时器消息又会引起下一个对话框的弹出。

同样的在你的对话框类中为了向调用者返回不同的值可以调用CDialog::OnOK()或是CDialog::OnCancel()以返回IDOK或IDCANCEL,如果你希望返回其他的值,你需要调用 
CDialog::EndDialog( int nResult );其中nResult会作为DoModal()调用的返回值。

下面的代码演示了如何使用自己的函数来退出对话框:下载例子

void CMy52_s1View::OnLButtonDown(UINT nFlags, CPoint point)
{//创建对话框并得到返回值CView::OnLButtonDown(nFlags, point);CTestDlg dlg;int iRet=dlg.DoModal();CString szOut;szOut.Format("return value %d",iRet);AfxMessageBox(szOut);
}
//重载OnOK,OnCancel
void CTestDlg::OnOK()
{//什么也不做
}
void CTestDlg::OnCancel()
{//什么也不做
}
//在对话框中对三个按钮消息进行映射
void CTestDlg::OnExit1()
{CDialog::OnOK();
}
void CTestDlg::OnExit2()
{CDialog::OnCancel();
}
void CTestDlg::OnExit3()
{CDialog::EndDialog(0XFF);
}

由于重载了OnOK和OnCancel所以在对话框中按下Enter键或Escape键时都不会退出,只有按下三个按钮中的其中一个才会返回。

此外在对话框被生成是会自动调用BOOL CDialog::OnInitDialog(),你如果需要在对话框显示前对其中的控件进行初始化,你需要重载这个函数,并在其中填入相关的初始化代码。利用ClassWizard可以方便的产生一些默认代码,首先打开ClassWizard,选择相应的对话框类,在右边的消息列表中选择WM_INITDIALOG并双击,如图,ClassWizard会自动产生相关代码,代码如下:

BOOL CTestDlg::OnInitDialog()
{/*先调用父类的同名函数*/CDialog::OnInitDialog();/*填写你的初始化代码*/    return TRUE; 

AfxEnableControlContainer 函数

摘录于:https://blog.csdn.net/heary29/article/details/42240475

AfxEnableControlContainer()函数是允许应用程序作为控件容器来使用,对于用MFC向导自动生成的单文档框架程序的C...APP::InitInstance()函数中自动加了这一句 AfxEnableControlContainer();

AfxEnableControlContainer() 负责布线所需的 CWnd 对象,以包含 OLE 控件支持结构。如果选择 OLE 控件支持时,此调用应用程序向导通过添加到项目中。您需要手动添加此调用,在以下情况中:

  • 要控制容器支持添加到现有项目。-或者-
  • 将包含 OLE 控件的对象不是直接由应用程序向导,如 OLE 控件创建的。

例如,如果动态地创建 OLE 控件作为另一个 OLE 控件的子级,父控件必须在其构造函数中调用 AfxEnableControlContainer()。

下面的列表列出了一些最常见的问题 (其他人是可能的),如果未调用 AfxEnableControlContainer() 可能会出现:

  • 在许多情况下,您可能会收到下面的调试器输出窗口中跟踪消息:

       >>> If this dialog has OLE controls:>>> AfxEnableControlContainer has not been called yet.>>> You should call it in your app's InitInstance function.
  • 在其他情况下,您可能会遇到以下文件 Cmdtarg.cpp,行 218 中的断言:
       ASSERT(afxOccManager != NULL);
  • 如果您 Masked Edit 上放置或某些其他 OLE 控件 CFormView,然后运行该应用程序,您可能会看到一个消息框,表明:

    创建空文档失败。

  • 在用AppWizard创建新的应用程序时,你的应用程序就被缺省设置为控件包容器,即在第3步选中支持ActiveX   Controls的复选框。如果你在创建过程中没有选择这项技术支持,以后也可以手动地加入这项支持。如果你手动添加这个函数,和APPWIZEARD添加效果是一样的

C++API【CDialog::DoModal()】【AfxEnableControlContainer 函数】相关推荐

  1. [MFC] CDialog::DoModal()函数用法

    5.2 创建有模式对话框 使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递).所以在使用对话框时其他窗口都不能接收用户 ...

  2. mfc formview中的关闭视图函数_VC|API消息处理(回调函数+分支语句)与MFC中的消息映射函数...

    Windows程序不同于控制台程序,因为输入输出不再是scanf和printf那么简单了,而是通过窗口(包括对话框和控件)作为输入.输出的界面以及键盘.鼠标的各类输入事件. 用户在操作系统中的任何操作 ...

  3. 判断日期是否为法定节假日的API接口与示例函数

    判断日期是否为法定节假日的API接口与示例函数 需要判定某日期是否为法定节假日,由于国家的节假日每年都在变动,所以使用接口判定是必要的.可惜的是,这样的接口并不多,在此汇总三个: http://too ...

  4. 《ASCE1885的网络编程》---Winsock APIのIP地址转换函数

    在进行网络程序设计时,常常需要从键盘上输入用点分十进制记法表示的主机IP地址,这种IP地址在程序中一般是用ASCII字符串的形式存储的.在网络程序中,要把这种用点分十进制字符串表示的IP地址转换为用网 ...

  5. C API可使用的函数归纳

    2019独角兽企业重金招聘Python工程师标准>>> mysql_affected_rows() 返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. my ...

  6. php根据当前日期判断法定节假日_判断日期是否为法定节假日的API接口与示例函数...

    需要判定某日期是否为法定节假日,由于国家的节假日每年都在变动,所以使用接口判定是必要的.可惜的是,这样的接口并不多,在此汇总三个: 前两个看起来是个人的,最后一个是聚合数据的万年历接口. 请注意,本文 ...

  7. python期货自动化交易_Python API面纱下的函数——基于CTP的国内期货程序化交易之报单流程讲解...

    很多用户已经阅读了真格量化的Python API文档,知道了其是对一些交易柜台,比如CTP C++ API的封装.这里我们可以看看这些API在C++中的原始面貌. 我们还是以CTP柜台为例.与海外市场 ...

  8. 节假日读取接口_判断日期是否为法定节假日的API接口与示例函数

    需要判定某日期是否为法定节假日,由于国家的节假日每年都在变动,所以使用接口判定是必要的.可惜的是,这样的接口并不多,在此汇总三个: 前两个看起来是个人的,最后一个是聚合数据的万年历接口. 在我的小项目 ...

  9. MFC/Windows API 使用过的函数(持续更新)

    1 /*******************使用默认画笔对象**************************** 2 // 3 //绘制矩形 4 pDC->MoveTo(50, 50); / ...

最新文章

  1. 圣诞节!教你用Python画棵圣诞树
  2. vijos 1030 重叠的方框
  3. 网络工程师求职与职业规划
  4. 如何查找业务用例和业务执行者
  5. cors 前后端分离跨域问题_前后端分离之CORS跨域访问踩坑总结
  6. 备份恢复,DBA最后一道防线,你完全掌握了吗?
  7. “硅谷女王”传奇:她是谷歌云 CEO,创立巨头 VMware
  8. C语言 · 9-1九宫格
  9. vue添加滚动事件,解决简书Carol_笑一笑方案中vue移除滚动事件失效的问题
  10. 疯狂工作流讲义(第2版)基于Activiti6.x电子书
  11. ARM9 S3C2440 定时器中断
  12. 地址栏js的写法(转载)
  13. “大圆满”之前行--从概念到知识再到计算的共生【原力】_目录规划与提要
  14. 卡塞格林光学系统_改进型卡塞格林光学系统的设计
  15. CAD参数绘制直线(网页版)
  16. java报表是什么_什么是报表工具
  17. 【Spark Streaming】(四)基于 Spark Structured Streaming 的开发与数据处理
  18. 频率选择性衰落、时间选择性衰落
  19. 2020无人用的邮箱和密码大全_Amazon后台登录密码错误!如何辨别账号是否被冻结?...
  20. [笔记]Windows核心编程《十九》DLL基础

热门文章

  1. 亚马逊调用Report接口全流程
  2. FZU - 2302  Necklace (dp+斜率优化)
  3. AM2302+STM32驱动程序
  4. GeoTools中的空间关系(Geometry Relationships)和空间操作(Geometry Operations)
  5. 9.03 Every Day English
  6. Vue中v-for必须在vue实例对应元素下的子元素中循环渲染数据
  7. 物流APP开发同城速递第一品牌,达达向 C 端市场进发
  8. 引力理论会失效?引力理论与量子理论相冲突之谜
  9. 【依葫芦画葫芦】の Scrapy Dou鱼封面爬取 笔记
  10. Recovery support touch