CSDN博客

img ToCpp

WM_NCHITTEST消息--发布日期:2008-07-24 01:10

发表于2008/10/2 19:49:00  671人阅读

分类: Win32/MFC

以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怎么办呢?这时可以通过判断相应点是否在某个区域内返回相应的值,经过测试可以运行。

阅读全文
0 0

相关文章推荐

img
取 消
img