您的位置:首页 > 编程语言 > C语言/C++

MFC拖动无标题窗体

2015-02-12 10:04 225 查看
第一种方法:
1.在.h文件添加
    afx_msg LRESULT OnNcHitTest(CPoint point); 
2.在.cpp文件添加
    BEGIN_MESSAGE_MAP(CDlgPresetCruise, CDialog)
     ON_WM_NCHITTEST() 
    END_MESSAGE_MAP()

    LRESULT CDlgPresetCruise::OnNcHitTest(CPoint pt)  
    {  
     CRect rc;  
     GetClientRect(&rc);  
     ClientToScreen(&rc);  
     return rc.PtInRect(pt) ? HTCAPTION : CDialog::OnNcHitTest(pt);  
    }
第二种方法:
首先添加鼠标左键单击消息,用自动添加便可。

void CDlgPresetCruise::OnLButtonDown(UINT nFlags, CPoint point)

{

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

 //使窗口可以拖动

 PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM (point.x, point.y));
 CDialog::OnLButtonDown(nFlags, point);

}

在OnLButtonDown的鼠标响应消息添加红色部分代码!


函数功能

  该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。消息队列里的消息通过调用GetMessage和PeekMessage取得。


原型与参数

  函数原型:B00L PostMessage(UINT Msg,WPARAM wParam,LPARAM lParam);

  参数说明:

  Msg:指定被寄送的消息。

  wParam:指定附加的消息特定的信息。

  IParam:指定附加的消息特定的信息。

  返回值:如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ mfc