这句话怎么理解?

dreamfly8848 2003-09-16 11:26:03
SendMessage (hwnd, WM_LBUTTONDOWN, MK_LBUTTON,MAKELONG (x * cxBlock, y * cyBlock))
看到windows程序设计鼠标那章。
这句话的意思书上是这样讲的。使用SendMessage把WM_LBUTTONDOWN讯息发送给它自身?
我想问的是不是调用下面的wm_lkbuttondown???
case WM_LBUTTONDOWN :
x = LOWORD (lParam) / cxBlock ;
y = HIWORD (lParam) / cyBlock ;

if (x < DIVISIONS && y < DIVISIONS)
{
fState[x][y] ^= 1 ;

rect.left = x * cxBlock ;
rect.top = y * cyBlock ;
rect.right = (x + 1) * cxBlock ;
rect.bottom = (y + 1) * cyBlock ;

InvalidateRect (hwnd, &rect, FALSE) ;
}
else
MessageBeep (0) ;
return 0 ;

还有MAKELONG (x * cxBlock, y * cyBlock)这个函数是什么意思???
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohyy 2003-09-16
  • 打赏
  • 举报
回复
SendMessage (hwnd, WM_LBUTTONDOWN, MK_LBUTTON,MAKELONG (x * cxBlock, y * cyBlock));
发给窗口句柄为hwnd的 窗口
whoishere 2003-09-16
  • 打赏
  • 举报
回复
LRESULT SendMessage(
HWND hWnd, // handle to destination window
UINT Msg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
这个是把消息发送给句柄hWnd对应的窗口,你列举的就是这种情况

LRESULT CWnd::SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );这个才是把消息发送给自身,注意,这个相比上面少了HWND hWnd这个参数。
ninsenki 2003-09-16
  • 打赏
  • 举报
回复
MAKELONG就是把两个数合成一个,一个放在高位,一个在低位

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧