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(大约 ...
随机推荐
- 并发编程——IO模型(6)
1.IO模型分类 同步IO #所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回.按照这个定义,其实绝大多数函数都是同步调用.但是一般而言,我们在说同步.异步的时候,特指那些需要 ...
- [c++基础]3/5原则--拷贝构造函数+拷贝赋值操作符
/* * main.cpp * * Created on: Apr 7, 2016 * Author: lizhen */ #include <iostream> #include &qu ...
- easyui可封装的各种方法
组件:datagrid 获取选中行(单行) var row = $('#tt').datagrid('getSelected'); if (row){ alert('Item ID ...
- MFC之HTTP文件上传
BOOL UploadFile(LPCTSTR strURL, LPCTSTR strLocalFileName) { // 如果URL为空或者文件不存在,直接返回 if (strURL == NUL ...
- poj3083 Children of the Candy Corn BFS&&DFS
Children of the Candy Corn Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11215 Acce ...
- BZOJ-1043 [HAOI2008]下落的圆盘
几何题... 先把所有圆储存起来,然后对于每个圆我们求得之后放下的圆挡住了的部分,求个并集,并把没被挡到的周长加进答案. #include <cstdlib> #include <c ...
- Codeforces Round #364 (Div. 2) B 标记
B. Cells Not Under Attack time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- Java面试题之Integer.valueOf(String s);采用了什么设计模式
Integer.valueOf(String s);//采用了亨元设计模式: 亨元模式: 它是以一种“节约内存,提高性能”为出发点的设计模式,运用共享技术有效的支持大量细粒度对象的复用. 源码解析: ...
- pat 团体天梯赛 L3-007. 天梯地图
L3-007. 天梯地图 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题要求你实现一个天梯赛专属在线地图,队员输入自己学校 ...
- Extension Methods "点"函数方法 扩展方法
原文发布时间为:2011-03-25 -- 来源于本人的百度文章 [由搬家工具导入] http://msdn.microsoft.com/en-us/library/bb383977.aspx 条件: ...