VC++/MFC中用PostMessage发送鼠标点击事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC++/MFC中用PostMessage发送鼠标点击事件相关的知识,希望对你有一定的参考价值。

假设一个窗口句柄为1234,我想在此窗口最小化后,仍能实现点击确定键按钮(假设这个键的坐标为100,100)函数原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);PostMessage(1234, WM_LBUTTONDOWN, ???, ???);后面2个参数怎么填? 怎么把坐标值也一块发送出去?要求 窗口最小化后,仍能实现,喊我用mouse_event的就不要来了。。。

坐标值应该是lParam,使用MAKEWPARAM合成,代码如下:
int x=100,y=100;
LPARAM lParam = MAKEWPARAM(x,y);
::PostMessage(1234, WM_LBUTTONDOWN, 1, lParam);
但这样1234窗口只响应OnLButtonDown事件,而不会响应 点击确认按钮的事件,我理解与你的要求不符合。正确的做法如下:
找到1234确认按钮对应的按钮ID,很多为1,假设为IDC_OKBT,然后发送消息
::PostMessage(1234,WM_COMMAND,MAKEWPARAM(IDC_OKBT,BN_CLICKED),0);
参考技术A 这个由你自己决定的

MFC SendMessage和PostMessage 区别

介绍SendMessage和PostMessage以及及其区别

都可以向进程内窗口发送消息也可以向进程外窗口发送消息。

可以发送系统消息也可以发送自定义消息WM_USER+1  0x400+1

SendMessage是阻塞型,PostMessage是非阻塞型

函数的返回值不一样

跨进程跨线程发送消息,使用PostMessage

以上是关于VC++/MFC中用PostMessage发送鼠标点击事件的主要内容,如果未能解决你的问题,请参考以下文章

在VC中用PostMessage()发送消息,为啥会发送失败?

在VC6.0做的MFC程序,如何在BS中用浏览器打开

VC/MFC怎样给菜单项添加勾啊

VC/MFC啥是逻辑坐标

基于VC/MFC 的UDP广播,我怎么接受返回的数据包

MFC/VC 在多文档MDI程序中 子窗口初始最大化显示 如何去掉菜单栏右侧的最小化及向下还原按钮