PostMessage 是如何实现的

如何确定接收者?接收者如何获得这些数据?接收者如何使用这些数据?... 如何确定接收者?
接收者如何获得这些数据?
接收者如何使用这些数据?
展开
 我来答
hanxiao0912
推荐于2016-02-02 · TA获得超过168个赞
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:0
展开全部
首先定义一个全局的句柄

HWND GWnd_MydlgWND;//

其次在你需要响应的窗口下(class CTestDlg : public CDialog)声明为外部引用
extern HWND GWnd_MydlgWND;

同时在该类下重载虚函数DefWindowProc ,用于接收消息

LRESULT CTestDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
switch(message)
{
case 0x401:MessageBox("测试程序");
break;

}
return CDialog::DefWindowProc(message, wParam, lParam);
}

再次是在你想要获得消息的窗口初始化函数(BOOL CTestDlg::OnInitDialog())中添加

// TODO: Add extra initialization here
GWnd_MydlgWND = GetSafeHwnd();

准备完毕

然后在你想要发送消息的地方发送
::PostMessage(GWnd_MydlgWND,0x401,0L,0L);//寄送消息
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
lfm13720
2008-08-04 · TA获得超过1102个赞
知道小有建树答主
回答量:896
采纳率:0%
帮助的人:0
展开全部
BOOL PostMessage(
HWND hWnd, // handle to destination window
UINT Msg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);

PostMessage将消息投递到指定窗口的消息队列中,然后返回。
第一个参数 hWnd 确定应该把消息投递给哪个窗口。
接收消息的窗口线程在不停的进行消息循环,一有新消息就会将消息传递给窗口函数,窗口函数会根据消息类型,即 Msg 的值,采用不同的方式来处理这条消息,至于如何处理,就要看编写窗口函数的人是如何写的代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式