当前位置:编程学习 > C#/ASP.NET >>

Visual C++下,请问如何在非客户区,整个界面随着鼠标的移动而移动?

请问Visual C++下,
如何在非客户区,整个界面随着鼠标的移动而移动?
就好像大多数软件一样,鼠标在界面的四围的任一处,随着鼠标的移动整个界面被鼠标带动而移动?
方法是什么?可以给出类似的代码该给我这菜鸟参考嘛? --------------------编程问答--------------------
友情帮顶下!顺便学习学习!
--------------------编程问答-------------------- 使用mfc
不用编程 --------------------编程问答-------------------- 不知道我理解的对不对,你是想在客户区也能像在标题区那样用鼠标拖动界面?可以捕获WM_LBUTTONDOWN:
    void CMyDialog::OnLButtonDown(CPoint point)
    {
        SendMessage(WM_SYSCOMMAND, SC_MOVE | HTCAPTION, 0); //只需添加这句话即可
        CDialog::OnLButtonDown(nFlags, point);
    }
如果是想界面随着鼠标移动而动,则改截获WM_MOUSEMOVE消息就可以了。 --------------------编程问答--------------------
引用 3 楼 youngvc05 的回复:
不知道我理解的对不对,你是想在客户区也能像在标题区那样用鼠标拖动界面?可以捕获WM_LBUTTONDOWN:
    void CMyDialog::OnLButtonDown(CPoint point)
    {
        SendMessage(WM_SYSCOMMAND, SC_MOVE | HTCAPTION, 0); //只需添加这句话即可
        CDialo……

我来帮你改一下,应该是当按下鼠标左键时就发送一个WM_NCLBUTTONDOWN消息,

void CmyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(MyMouseFlag&CloseState)//这个是我的非客户区的关闭按钮区域判断方法--可以使用CRect::PtInRect();
DestroyWindow();
else if(MyMouseFlag&NCState)//这个是判断是否点击的位置是非客户区的标题栏区域
{
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,0);//当点击的区域位于可移动窗口的区域就发送这个消息
//CDialog::OnNcLButtonDown(HTCAPTION,point);
//AfxMessageBox(_T("NC click!"));
}

CDialog::OnLButtonDown(nFlags, point);
}
--------------------编程问答-------------------- 我也有个问题请教一下,如果是ListBox的光标超出客户区,客户区或者垂直滚动条如何去跟踪到该位置?
实在问不到答案了,谢谢. --------------------编程问答--------------------
引用 4 楼  的回复:
引用 3 楼 youngvc05 的回复:

不知道我理解的对不对,你是想在客户区也能像在标题区那样用鼠标拖动界面?可以捕获WM_LBUTTONDOWN:
void CMyDialog::OnLButtonDown(CPoint point)
{
SendMessage(WM_SYSCOMMAND, SC_MOVE | HTCAPTION, 0); //只需添加这句话即可
CDialo……
--------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 ,  VC.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,