vc++自定义息的使用
来源:互联网 发布:windows ad域组策略 编辑:程序博客网 时间:2024/04/25 17:03
1.PostMessage和SendMessage函数的区别
用户可以通过PostMessage和SendMessage函数来发送自定义消息,其区别在于:
PostMessage只把消息放入队列,不管消息处理程序是否处理都返回,然后继续执行,这是个异步消息投放函数;
SendMessage必须等待消息处理程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数;
而且,PostMessage的返回值表示PostMessage函数执行是否正确;而SendMessage的返回值表示其他程序处理消息后的返回值。
2.自定义消息的发送方法
(1)在 resource.h 或 stdax.h 文件添加如下代码定义一个自己的消息:
#define WM_MY_MESSAGE WM_USER +1
(2)在消息处理函数所在的类的头文件中添加如下代码:
//{{AFX_MSG(C...)
afx_msg ........
afx_msg ........
afx_msg void OnMyMessage(/*WPARAM wParam, LPARAM lParam*/);//参数有无根据实际情况而定
//}}AFX_MSG
DECLARE_MESSAGE_MAP( )
(3)在消息处理函数所在的类的cpp文件中添加如下代码:
BEGIN_MESSAGE_MAP(... , ...)
//{{AFX_MSG_MAP(CPostmessageView)
ON_COMMAND .......
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
//}}AFX_MSG_MAP
......
END_MESSAGE_MAP()
(4)在消息处理函数所在的类的cpp文件中手动添加消息相应函数代码:
void CPostmessageView::OnMyMessage(/*WPARAM wParam, LPARAM lParam*/)
{
........
........
}
(5)在需要发送消息的地方添加代码:
PostMessage(WM_MY_MESSAGE);
或
SendMessage(WM_MY_MESSAGE);
3.从一个类向MainFrame类发送自定义消息
直接使用PostMessage或SendMessage函数只能向函数所在的类发送消息,如果想向MainFrame类发送消息,可以使用下面的代码:
((CMainFrame*)AfxGetMainWnd())->PostMessage(WM_XXX);
或
((CMainFrame*)AfxGetMainWnd())->SendMessage(WM_XXX);
- vc++自定义息的使用
- VC自定义资源的使用
- VC++中自定义头文件的使用
- VC中自定义资源的使用 FindResource
- VC中自定义消息的使用
- VC系列之------VC++8.0中自定义函数的使用
- vc 使用自定义消息
- 如何在VC中使用自定义的SkinMagic控件?
- VC中怎样使用自定义资源的动态库
- vc中使用SendMessage正确发送自定义消息的方法
- VC++基础 使用自定义消息实现线程间的通信
- vc中使用SendMessage正确发送自定义消息的方法
- vc中使用SendMessage正确发送自定义消息的方法
- 如何使用VC自定义菜单
- VC中使用自定义资源
- vc++自定义息
- vc自定义消息的方法
- VC自定义消息的方法
- struts2.1.6 使用札记(一)
- 语言的歧义
- Struts 2.1.6 搭建环境
- 给Ubuntu 9.04配置3D桌面
- Common Dbutils组件用法详解(含源代码)(转)
- vc++自定义息的使用
- 光端机,话路复用器,交换机
- 出国的人
- Applet编程——Applet与Servlet通信(转载)
- asp.net中的窗体身份验证(完整篇之三:用户登录页面)
- views::RepeatController
- snprintf函数使用(Windows与Linux版本)
- 线程同步:CriticalSection关键区域
- 简历要怎样写呢?面试要注意哪些细节?