本文主要是介绍WM_NCHITTEST消息--发布日期:2008-07-24 01:10,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
以SDK为例:
case WM_LBUTTONDOWN :
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
wsprintf(mess,"pt.x=%d,pt.y=%d",pt.x,pt.y);
MessageBox(hwnd,mess,"调试",MB_OK);
/*ScreenToClient(hwnd,&pt);*/
if (PtInRect(&rcClose, pt))
{
MessageBox(hwnd,"点击了关闭按钮","调试",MB_OK);
SendMessage(hwnd,WM_SYSCOMMAND,(WPARAM)SC_CLOSE,(LPARAM)MAKELPARAM(pt.x, pt.y));
}
if (PtInRect(&rcMin, pt))
{
SendMessage(hwnd,WM_SYSCOMMAND,(WPARAM)SC_MINIMIZE,(LPARAM)MAKELPARAM(pt.x, pt.y));
}
break;
case WM_NCHITTEST:
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
ScreenToClient(hwnd,&pt);
if(!PtInRect(&rcClose,pt) && !PtInRect(&rcMin,pt))
return HTCAPTION;
else
return HTCLIENT;
当你在消息函数中截获此消息时,你可以选择直接返回相应的值比如HTCAPTION给OS,这时经过我的测试发现OS就不会给你发送WM_LBUTTONDOWN消息了,而如上所示我需要响应WM_LBUTTONDOWN怎么办呢?这时可以通过判断相应点是否在某个区域内返回相应的值,经过测试可以运行。
这篇关于WM_NCHITTEST消息--发布日期:2008-07-24 01:10的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!