假设现在有一个窗口,其句柄为hWindow,窗口上有一按钮控件IDC_BTN_OPEN,若希望通过发送消息的方法实现点击该按钮控件(即使窗口最小化也能实现点击功能),可通过PostMessage方法。
具体方法:1.通过::FindWindow()方法找到该窗口句柄 hWindow。
2.在PostMessage中实现单击的方法为:MAKEWPARAM(IDC_BTN_OPEN,BN_CLICKED)
3.调用PostMessage()方法实现单击按钮效果。
代码如下
HWND hWindow= ::FindWindow(_T("TSSHELLWND"),NULL); if(NULL == hWindow) { nErrorCode = GetLastError(); return; } if(!::PostMessage(hWindow,WM_COMMAND,MAKEWPARAM(IDC_BUTTON1,BN_CLICKED),0);) { nErrorCode = GetLastError(); return; }
若想实现单击窗口某个具体位置,可用如下方法:
坐标值应该是lParam,使用MAKEWPARAM合成,代码如下: int x=100,y=100; LPARAM lParam = MAKEWPARAM(x,y); ::PostMessage(hWindow, WM_LBUTTONDOWN, 1, lParam);