如何拖动无标题栏窗体谢谢!

解决方案 »

  1.   

    在OnLButtonDown中加SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
    PostMessage(WM_LBUTTONUP, NULL, MAKELPARAM(point.x, point.y));
      

  2.   

    只要SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
      

  3.   

    处理WM_NCHITTEST消息, 如下所示:UINT CAboutDlg::OnNcHitTest(CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值 //return CDialog::OnNcHitTest(point);
    UINT nHitTest = CDialog::OnNcHitTest (point);
    return (nHitTest == HTCLIENT)? HTCAPTION: nHitTest;
    }
      

  4.   

    先新建一个基于对话框的工程
    然后打开ClassWizard选择Class Info选项卡,在Message Filter下选Window
    我后在MessageMaps选项卡中的ObjectIDs选择你的对话框,在Messages中选择
    WM_NCHITTEST单击Add Function再单击Edit Code
    然后添加以下代码
    UINT CMoveNoCaptionDlg::OnNcHitTest(CPoint point) 
    {
    CPoint pt = point;
    ScreenToClient(&pt);
    CRect rect;
    GetClientRect(&rect); if (rect.PtInRect(pt))
    {
    return HTCAPTION;
    } return CDialog::OnNcHitTest(point);
    }
    完成!
    运行看看吧:)