首页
社区
课程
招聘
窗口编程的问题,求助!
2016-10-25 09:51 2699

窗口编程的问题,求助!

2016-10-25 09:51
2699
RECT Rect;

        ::GetWindowRect(hwnd,&Rect);

        LONG Left = Rect.left+((Rect.right - Rect.left) *0.84);

        LONG Top = Rect.top+((Rect.bottom -  Rect.top) *0.06);

        ::PostMessage(hwnd, WM_MOUSEMOVE, 0, MAKELPARAM(Left, Top));
        Sleep(100);
        ::PostMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(Left , Top));
        Sleep(50);
        ::PostMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(Left , Top));
        Sleep(100);

因为窗口大小可能会被用户改变 所以
        ::SetCursorPos(Left,Top);
移动光标到指定位置算出的差数 *0.84、*0.06
为什么经过 MAKELPARAM后的坐标不一样了? 求教

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
哇咔咔zs 2016-10-25 09:56
2
0
可能在下表达不清楚:

LONG Left = Rect.left+((Rect.right - Rect.left) *0.84);

LONG Top = Rect.top+((Rect.bottom -  Rect.top) *0.06);

::SetCursorPos(Left,Top);

移动光标到指定位置是我预想的一样
但是::PostMessage点击的位置就不对了 这是为什么呢
雪    币: 31
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luobonic 2016-10-25 14:38
3
0
搞不懂你要干什么,下次写标题把问题描述清楚点儿吧。

点击某个位置用SendMessage
void mouseClick(HWND hwnd, unsigned long x, unsigned long y)  
{  
	SendMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(x, y));
	SendMessage(hwnd, WM_LBUTTONUP, NULL, MAKELPARAM(x, y));  
}  

void keyPress(HWND hwnd, int key)  
{  
	BYTE scancode = MapVirtualKey(key,MAPVK_VK_TO_VSC);
	SendMessage(hwnd, WM_KEYDOWN, key, MAKELPARAM(0, scancode));
	SendMessage(hwnd, WM_KEYUP, key, MAKELPARAM(0, scancode));
}
游客
登录 | 注册 方可回帖
返回