win32 SDK平台下自定义消息WM_SELFMSG由工作线程1发送给线程2接受响应做某事,请给个实例。

关键点是如何在win32SDK下如何实现自定义消息,非MFC下的!... 关键点是如何在win32SDK下如何实现自定义消息,非MFC下的! 展开
 我来答
神一样的原稿师
2012-10-28 · 超过20用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:57.7万
展开全部
首先,主线程必须是窗体线程,也就是主线程负责窗体的消息处理 ,
然后用 _beginthreadex 开一个后台线程,在后台线程里面用 SendMessage 或者 PostMessage 给主线程发送 WM_SELFMSG 消息就可以了,主线程 case WM_SELFMSG 之后就可以处理了 。

Win32 SDK 自定义消息非常简单,用 #define 就可以了,比如 :

#define WM_SELFMSG WM_USER + 1

要注意的是,自定义消息的值一定要大于 WM_USER 但不能等于,因为 WM_USER 以下的值都是保留给系统使用的,否则会产生消息冲突 。
追问
谢谢你的回答已经很好了。但是我如果从主进程调度工作线程1(以sendmessage自定义消息的给主线程的方式)工作状态,是否只有SuspendThread()或者ResumeThread()来调度?还是可以通过主---->工作线程1也发送消息的模式?但是工作线程1一般没有窗体的,而是从事后台做某项特定工作的。但是如果主线程也可以通过发送消息模式调度工作线程1的话,那么工作线程1如何接受主线程发来的消息并处理呢?

谢谢!
追答
呵呵,这个就简单了,不一定要通过发送窗体消息,我们可以使用一个全局变量来控制后台线程的工作状态,主线程将全局变量设置成不同的值,后台线程根据这个全局变量的值来暂停、停止,或者继续工作,都可以 。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式