MFC如何自定义消息,有没有一个框架流程;
我想实现2个线程传递内容,一个后台程序分析数据,另一个是MFC的界面主线程,当我点击某个控件,激活后台线程,分析数据,但是我每到一段时间,发送一次分析的结果给界面;之前使...
我想实现2个线程传递内容,一个后台程序分析数据,另一个是MFC的界面主线程,当我点击某个控件,激活后台线程,分析数据,但是我每到一段时间,发送一次分析的结果给界面;之前使用的是static全局变量,现在想使用发消息的方式,但是不知道具体如何实现;
能否给个举例,或者框架,多谢! 展开
能否给个举例,或者框架,多谢! 展开
3个回答
展开全部
你应该是线程同步的问题,使用MFC或者windows线程同步,有信号量,互斥量,临界区,事件等,你可以使用全局变量,消息本质还是生成了新的线程
自定义消息方法
在头文件声明
#define MYMSG (WM_USER+1)//随便填,但是要大于WM_USER
在头文件声明消息响应函数
afx_msg LRESULT MyMsg(WPARAM wParam,LPARAM lParam);
在对应cpp文件加入消息注册
ON_MESSAGE( MYMSG ,MyMsg)
然后再cpp文件实现消息响应函数
某个地方要发送该消息,先获取到消息响应函数对象指针,然后发消息
比如主框架
((CMainFrame*)AfxGetMainWnd())->SendMessage(MYMSG);
后边两个参数根据实现需要添加
自定义消息方法
在头文件声明
#define MYMSG (WM_USER+1)//随便填,但是要大于WM_USER
在头文件声明消息响应函数
afx_msg LRESULT MyMsg(WPARAM wParam,LPARAM lParam);
在对应cpp文件加入消息注册
ON_MESSAGE( MYMSG ,MyMsg)
然后再cpp文件实现消息响应函数
某个地方要发送该消息,先获取到消息响应函数对象指针,然后发消息
比如主框架
((CMainFrame*)AfxGetMainWnd())->SendMessage(MYMSG);
后边两个参数根据实现需要添加
网易云信
2023-12-06 广告
2023-12-06 广告
很高兴能回答您的问题。以下是一段针对“一对一消息组件”的描述,字数在200字左右:该组件支持用户之间的私密交流,让沟通更加直接和高效。通过它,您可以向特定对象发送消息,并实时查看消息状态,包括对方是否已读或未读。同时,该组件还支持富文本消息...
点击进入详情页
本回答由网易云信提供
展开全部
首先要定义消息:#define 消息名 WM_USER+定义序号
例如: #define USER_REC WM_USER+10
分析数据线程: postmessage发送消息
mfc继承界面:界面类重载DefWindowProc函数 ,响应自定义消息即可.
例如: #define USER_REC WM_USER+10
分析数据线程: postmessage发送消息
mfc继承界面:界面类重载DefWindowProc函数 ,响应自定义消息即可.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define WM_WORK WM_USER + 1 //定义消息
然后工作线程发WM_WORK 给主线程,主线程处理WM_WORK消息就可以了。
然后工作线程发WM_WORK 给主线程,主线程处理WM_WORK消息就可以了。
追问
能不能写一下 发送的函数名 以及一个调用举例; 主线程那边又如何处理?
追答
比如说你点击了一个按钮后,开启工作线程,工作线程中把要发送的分析结果保存在堆内存中,然后把这个地址当作消息的wparam或者lparam中传过去,主线程收到这个消息后就可以根据这个地址提取出子线程要发送给主线程的内容了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询