注册 登录
编程论坛 C++教室

请高手帮看看下面的代码什么意思(关于移位运算符的),谢谢

护花使者 发布于 2010-05-26 15:05, 578 次点击
int   x=22,y=187;
    HWND hwnd=::FindWindow(NULL,gameCaption);
    int lparam;
    lparam=(y<<16)+x+31*2;//表示指定格
    ::SendMessage(hwnd,WM_LBUTTONDOWN,0,lparam);//
    ::SendMessage(hwnd,WM_LBUTTONUP,0,lparam);  //
3 回复
#2
2010-05-26 23:18
先把y用二进制表示出来,然后右移16位,产生一个数在计算,最后复制给lparam。
#3
debroa7232010-05-26 23:35
这是一个坐标
x=84 , y=187
这是相对于窗口hwnd的,
通过SendMessage将坐标传送到窗口hwnd的鼠标左键按下和松开事件里。
这里用int 的高十六位记录了y 的值,在低十六记录了x的值。
消息事件响应函数中会分别取出高十六和低十六,这样就知道鼠标点击的坐标值。
xPos = LOWORD(lParam);   
yPos = HIWORD(lParam);
#4
南国利剑2010-05-28 23:17
三楼说的对。
二楼的说法有不对,是左移而不是右移。
1