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(大约 ...
随机推荐
- java中常用的几种缓存类型介绍
在平时的开发中会经常用到缓存,比如locache.redis等,但一直没有对缓存有过比较全面的总结.下面从什么是缓存.为什么使用缓存.缓存的分类以及对每种缓存的使用分别进行分析,从而对缓存有更深入的了 ...
- Goole Search Auto Complete
这个项目就九章算法大数据课程的一个项目.主要分为两步: 第一步是 offline 建立 数据库 我们用两个map reduce 的data pipline 来实现. 第二步是 online显示把数据里 ...
- 菜鸟之路——机器学习之HierarchicalClustering层次分析及个人理解
这个算法.我个人感觉有点鸡肋.最终的表达也不是特别清楚. 原理很简单,从所有的样本中选取Euclidean distance最近的两个样本,归为一类,取其平均值组成一个新样本,总样本数少1:不断的重复 ...
- Unable to execute dex: Multiple dex files define 问题
今天在run公司的android project时候,报这个错误. 1. Clean Project, 重启Eclipse 没有解决. 2. 看到别人遇到的相同错误,解决方法如下: http://bl ...
- easyui 右键绑定事件
$(function(){ $('#hospitalTree').bind('contextmenu', function(e) { e.preventDefault(); ...
- SCU 4438 Censor(哈希+模拟栈)
Censor frog is now a editor to censor so-called sensitive words (敏感词). She has a long text \(p\). He ...
- Repeater嵌套(灵活的)
页面代码 <form id="form1" runat="server"> <asp:Repeater ID="rptCategor ...
- webService的wsdl和restful的wadl的区别
WebService之WADL和WSDL区别 两者都是基于自然语言描述的Web Application接口 . WADL主要用于Rest基础. Java开发WebService最重要的两个规范: JS ...
- bzoj 3101 N皇后构造一种解 数学
3101: N皇后 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 70 Solved: 32[Submit][S ...
- springboot开启定时任务 添加定时任务 推送
最近在自学Java的springboot框架,要用到定时推送消息.参考了网上的教程,自己调试,终于调好了.下面将网上的教程归纳下,总结复习下. springboot开启定时任务 在SpringBo ...