MFC中 自定义消息
想在对话框显示出来后立即执行一段代码。
方法之一是自定义消息,即添加一个自定义的消息在消息队列中等待对话框初始化之后从消息队列中读取消息执行代码。
在OnInitDialog返回之前post一个自定义的消息,在消息的相应函数里执行代码
利用类向导添加自定义消息WM_MY_PRIVATE,则生成如下消息响应函数,可以在自定义的消息响应函数里添加自己的代码:
LRESULT MyAppDlg::OnPrivateMessage(WPARAM,LPARAM)
{
return0;
}
当然,在消息映射表里会发现增加了一项:
ON_MESSAGE(WM_MY_PRIVATE,&CdummyDlg::OnPrivateMessage)
然后在CPP文件上面添加:
#define WM_MY_PRIVATE WM_USER + 1551
在OnInitDialog()函数返回之前添加PostMessage(WM_MY_PRIVATE,如下:
BOOLMyAppDlg::OnInitDialog()
{ …………………………
// TODO: Add extra initialization here
PostMessage(WM_MY_PRIVATE);
returnTRUE; // return TRUE unless you set the focus to a control
}
方法二是利用定时器,此方法没验证过。
在OnInitDialog返回之前创建一个只报时一次的定时器,在OnTimer里执行代码
BOOLMyAppDlg::OnInitDialog()
{ …………………………
// TODO: Add extra initialization here
SetTimer(m_nTimerID, 100, NULL);
returnTRUE; // return TRUE unless you set the focus to a control
}
voidMyAppDlg::OnTimer(UINT_PTRnIDEvent)
{
if(nIDEvent == m_nTimerID)
{ // 只执行一次,所以一报时就Kill掉了
KillTimer(m_nTimerID);
m_nTimerID = 0;
AfxMessageBox(_T("Hello MFC"));
return;
}
CDialog::OnTimer(nIDEvent);
}
MFC中 自定义消息的更多相关文章
- MFC中自定义消息
		在头文件stdafx.h中增加一个自定义消息宏 #define WM_USER_THREADEND WM_USER + 1 在于增加新消息的窗口或对话框类的头文件中增加一个回调函数声明 afx_msg ... 
- C#中自定义消息,与MFc对比
		在C#中采用的是事件驱动方式,但在我们使用的过程中,有时候通过调用系统原有的消息,处理起来会比较简单一些,特别是在处理与DLL文件的交互时,的确是非常的方便. 在C#中使用自定义消息 ... 
- MFC中用户自定义类响应自定义消息
		这篇技术文章不是讨论经典的MFC中的消息工作机理的,讨论消息工作原理.方式和路径的文章在网上和书本中随处可见.网上众多的讨论都是关于如何响应并进行用户自定义消息映射的:网上还有一些文章介绍如何在自定义 ... 
- MFC中不同对话框间使用SendMessage发送自定义消息的具体实现
		1. 基本知识 SendMessage的基本结构如下: SendMessage( HWND hWnd, //消息传递的目标窗口或线程的句柄. UINT Msg, //消息类别(这里可 ... 
- MFC用户自定义消息
		之前做过佳能相机和位移平台的额二次开发,当时遇到一个棘手的问题,就是位移平台如何知道相机已经拍完照了,或者相机如何知道位移平台已经运行到指定位置,当时为了方便采用了定时器来定时检测位移平台的位置,结果 ... 
- MFC中,如何自定义用户消息
		1.用处 在多个类之间传递消息.当需要响应用户操作,本类却无法实现时,可以向系统发出消息.然后让系统中的需要的位置实现它. 2.方法 2.1定义这个消息,并让拥有者发送这个这个消息,传递一个整型参数 ... 
- MFC添加自定义消息
		由于MFC中无法通过类向导来自定义消息,所以需要手动添加,主要过程如下: 本文基于vs2008下通过线程实现数据实时更新的对话框运用程序 1. 定义消息(Resource.h文件中): 由于很多新控件 ... 
- MFC消息-自定义消息
		转:http://blog.csdn.net/penpenandtongtong/article/details/18598907 像MFC的窗口发送消息,可以进行自定义的动作行为,因此很多时候非常有 ... 
- MFC中使用FLASH
		一.准备工作 第一步:下载并安装Adobe Flash Player. 从官方网站(http://get.adobe.com/cn/flashplayer/)上下载最新的Flash Player(大约 ... 
随机推荐
- linux简单授权
			linux授权:r: readw: writex:executech:change b=byte1byte=8 bitsu=user ownerg=groupo=othera=all_ _ _ _ _ ... 
- Python 拓展之迭代器
			写在之前 今天来讲讲「迭代器」的内容,其实已经拖了好多天了,感觉再不写就要忘记了.「迭代」相信对你来说已经不陌生了,我前面曾经专门用一篇文章来讲,如果你已经没有什么印象的话,就再点进去看看(零基础学习 ... 
- 【homework week5】初步了解敏捷开发——自由与约束的哲学统一
			“自由与束缚的哲学统一”或许不该放到标题上去,毕竟它只是我灵光一闪的感悟.但这个spark让我感到高中到大学的哲学应该也没有白学,这是让人非常兴奋的一件事. 所以我还是把它放到了标题上. 来谈敏捷软件 ... 
- PAT1039
			小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ... 
- 欧拉回路基础 HDU1878  欧拉回路||并差集
			欢迎参加——每周六晚的BestCoder(有米!) 欧拉回路 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ... 
- 通过 purge_relay_logs 自动清理relaylog
			使用背景 线上物理备份任务是在从库上进行的,xtrabackup会在备份binlog的时候执行flush logs,relay-log会rotate到新的一个文件号,导致sql thread线程应用完 ... 
- Win右键管理员权限的获取
			Windows Registry Editor Version 5.00 ;取得文件修改权限 [HKEY_CLASSES_ROOT\*\shell\runas] @="管理员权限" ... 
- BZOJ 3150 [Ctsc2013]猴子 ——期望DP 高斯消元
			一堆牌的期望等于每张牌的期望值和. 考虑三个人的游戏即可得到. 然后每张牌遇到另外一张的概率相同,然后就可以列方程求解了. #include <cmath> #include <cs ... 
- Python之时间:time模块
			import time 对于时间,使用最频繁的模块 1.获取当前时间 (1)时间戳 time.time() 时间戳:从1970年1月1日0点开始到现在按秒计算的偏移量 (2)时间元组 time.l ... 
- Java EE 学习(6):IDEA + maven + spring 搭建 web(2)- 配置 Spring
			参考:https://my.oschina.net/gaussik/blog/513353 注:此文承接上一文:Java EE 学习(5):IDEA + maven + spring 搭建 web(1 ... 
