vc如何自定义消息与在线程中向主窗体控件发送数据
2014-01-11 11:31
405 查看
如何定义消息:
1.定义消息:
在对话框类的头文件中定义一个自定义消息
#define WM_MY_MESSAGE WM_USER+100
2.在类中声明该消息的处理函数:
在该类声明的内部的protected:下声明如:
afx_msg LRESULT MyMessage(WPARAM wParam, LPARAM lParam);
3.在类的消息映射表中加入映射项
在该类的源文件的消息映射表中添加一条消息处理记录
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
......
ON_MESSAGE(WM_MY_MESSAGE ,MyMessage)
......
END_MESSAGE_MAP()
4.在类的实现文件中添加该消息的处理函数
添加一个消息处理函数,如:
LRESULT CMyDialog::MyMessage(WPARAM wParam,LPARAM lParam)
{
........//数据的处理
return 0;
}
5.调用SendMessage函数或是PostMesage函数给主窗体发消息,
首先获取主窗体的句柄
HWND hHwnd = GetSafeHwnd();
然后再线程函数里面
DWORD _stdcall ListenProc(LPVOID Param)
{
............
char *sendstr="需要发送的数据";
PostMessage(hWnd,WM_MY_MESSAGE,(WPARAM)sendstr,0);
............
return 0L;
}
1.定义消息:
在对话框类的头文件中定义一个自定义消息
#define WM_MY_MESSAGE WM_USER+100
2.在类中声明该消息的处理函数:
在该类声明的内部的protected:下声明如:
afx_msg LRESULT MyMessage(WPARAM wParam, LPARAM lParam);
3.在类的消息映射表中加入映射项
在该类的源文件的消息映射表中添加一条消息处理记录
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
......
ON_MESSAGE(WM_MY_MESSAGE ,MyMessage)
......
END_MESSAGE_MAP()
4.在类的实现文件中添加该消息的处理函数
添加一个消息处理函数,如:
LRESULT CMyDialog::MyMessage(WPARAM wParam,LPARAM lParam)
{
........//数据的处理
return 0;
}
5.调用SendMessage函数或是PostMesage函数给主窗体发消息,
首先获取主窗体的句柄
HWND hHwnd = GetSafeHwnd();
然后再线程函数里面
DWORD _stdcall ListenProc(LPVOID Param)
{
............
char *sendstr="需要发送的数据";
PostMessage(hWnd,WM_MY_MESSAGE,(WPARAM)sendstr,0);
............
return 0L;
}
相关文章推荐
- vc如何自定义消息与在线程中向主窗体控件发送数据
- MFC如何自定义消息与在线程中向主窗体控件发送数据
- MFC总结(4)---MFC中如何使用子控件向父控件发送自定义消息
- 来自MSDN的一个Sample:如何自定义 Windows 窗体 DataGridView 控件中的数据格式设置
- 如何在mfc中通过线程向主窗口发送数据或者是访问控件
- c#,VC++ 在WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- 《C#编程之道》 之 如何跨线程调用Windows窗体控件
- vc中使用SendMessage正确发送自定义消息的方法
- 工作线程调用sendmessage()向主对话框发送自定义消息遇到的问题以及解决
- 如何给线程发送消息
- c# winform下使用多线程时在线程里如何安全访问窗体控件InvokeRequired
- VC++如何处理自定义消息
- ios自定义xib的时候,需要如何初始化里面的控件(添加相关的数据到控件)
- 如何在子线程中操作窗体上的控件
- vc自定义消息的发送与接收的方法实现
- c#中如何跨线程调用windows窗体控件?
- 如何跨线程调用Windows窗体控件
- Windows下如何自定义窗体控件
- c#中如何跨线程调用windows窗体控件?
- 不知道在MFC中如何从线程工作函数中向窗口发送消息?用好一个指针就够了