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

原创 2008年10月02日 19:49:00

以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消息(移动无标题对话框多个)

我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口。 一个容易想到的...
  • whatday
  • whatday
  • 2012年10月04日 22:05
  • 2642

WM_NCHITTEST消息的了解+代码实例进行演示

这个消息比较实用也很关键,它代表非显示区域命中测试。这个消息优先于所有其他的显示区域和非显示区域鼠标消息。其中lParam参数含有鼠标位置的x和y屏幕坐标,wParam 这里没有用。 Windows...
  • zang141588761
  • zang141588761
  • 2016年10月18日 14:29
  • 374

WM_NCHITTEST 消息

在学习VC++ 鼠标消息时 遇到WM_NCHITTEST 消息,书上讲得不是很清楚,在网上搜了一下 这个比较详细 应该对 对WM_NCHITTEST 消息有疑惑的人有不少帮助   通常,我们拖动对...
  • gd1206100064
  • gd1206100064
  • 2013年05月16日 15:15
  • 582

WM_NCHITTEST消息

WM_NCHITTEST消息
  • SEUU
  • SEUU
  • 2014年05月20日 11:15
  • 403

WM_NCHITTEST消息欺骗Windows(一)

用WM_NCHITTEST消息欺骗Windows(一)2007-02-02 14:26通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口。一个容易想到的方案是...
  • scollins
  • scollins
  • 2010年04月22日 21:08
  • 4964

WM_NCHITTEST的作用:移动对话框,动态修改对话框标题

窗口在接收一个客户区或非客户区鼠标消息之前
  • u014023993
  • u014023993
  • 2014年06月02日 14:14
  • 642

WM_NCHITTEST 消息使用解说

移动一个无标题栏的窗体时,要使用WM_NCHITTEST消息,这个消息使用情况大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口。 一...
  • CreatedSign
  • CreatedSign
  • 2014年02月07日 12:29
  • 1269

WM_NCHITTEST消息说明

 声明:转载此文档时请注明转载来源和我的名字,本人水平有限翻译有误处请指出WM_NCHITTEST           当光标移动到窗体,或鼠标按下,释放时,发送WM_NCHITTEST消息,如何鼠标...
  • yingzheng1983
  • yingzheng1983
  • 2008年10月24日 12:00
  • 3298

关于WM_NCHITTEST消息

我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口。 一个容易想到的...
  • fyl_077
  • fyl_077
  • 2013年09月17日 19:41
  • 320

WM_NCHITTEST消息欺骗Windows

通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口。 一个容易想到的方案是,处理鼠标消息WM_LBUTTONDOWN和WM_LBUTTONUP。在OnLBu...
  • sscsgss
  • sscsgss
  • 2011年10月29日 10:14
  • 297
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WM_NCHITTEST消息--发布日期:2008-07-24 01:10
举报原因:
原因补充:

(最多只允许输入30个字)