VC实现鼠标移动对话框窗口

本实例主要实现了通过鼠标的移动,来实现窗口的同步移动。即鼠标左键按下后并对鼠标进行移动,从而窗口跟随鼠标移动,直到鼠标左键抬起,其具体思路是重载”WM_NCHITTEST”消息,在生成的”OnNcHitTest”函数中添加鼠标移动时窗口随之移动的代码,具体实现步骤如下:

  在所要移动的窗口类上面,点击鼠标右键,选择”Add Windows Message Handler…”如图所示:


  在弹出的窗口中选择”WM_NCHITTEST”消息,如下图所示:


  此时双击”WM_NCHITTEST”消息,或点击”AddHandler”接钮,添加到已经存在的消息列表中,如下图所示:


  如果”WM_NCHITTEST”消息已经成功加入列已经存在的消息列表中,则点击”Add and Edit”按钮,如下图所示:


  此时系统会自动生成对”WM_NCHITTEST”消息的映射函数(函数名为:OnNcHitTest),如下图所示:


   最后,在刚刚生成的OnNcHitTest函数中添加窗口的移动代码,代码如下所示:

UINT CJaneDictDlg::OnNcHitTest(CPoint point)
{

    // TODO: Add your message handler code here and/or call default

    // 父类窗口的调用,获取鼠标点击的状态

    UINT uHitTest = CDialog::OnNcHitTest(point);


    // 判断是否为当前窗口的客户区,如果窗口无标题直接返回HTCAPTION即可。

    return (uHitTest == HTCLIENT) ? HTCAPTION : uHitTest;


    return CDialog::OnNcHitTest(point);

}

至此,窗口的移动已经实现。

转载请附上原文出处链接及本声明
李老师的博客 » VC实现鼠标移动对话框窗口

发表评论

提供最优质的文章集合

立即查看 了解详情