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

窗口编程的问题,求助!

2016-10-25 09:51
2831
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后的坐标不一样了? 求教

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可能在下表达不清楚:

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

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

::SetCursorPos(Left,Top);

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

点击某个位置用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));
}
2016-10-25 14:38
0
游客
登录 | 注册 方可回帖
返回
//