首页 > Windows开发 > 详细

关于对话框窗体拖动的问题

时间:2016-03-26 08:32:15      阅读:344      评论:0      收藏:0      [点我收藏+]


通常情况下是,按住鼠标不放,按住标题栏区域可拖动窗体,按住客户区不可以拖动窗体


通过添加如下代码,可以实现按住客户区可拖动的操作

LRESULT CTestMfcDlg::OnNcHitTest(CPoint point)

{

    UINT nHitTest=CDialogEx::OnNcHitTest(point);

    if(nHitTest==HTCLIENT)//如果是客户区

    {

        nHitTest=HTCAPTION; //则把它当成标题栏

    }

    return nHitTest;

}


通过如下代码,可改变标题栏高度

void CTestMfcDlg::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp)

{

    int myCaptionHeight = 50;  //标题栏高度

    int myLeftBorderWeight =10;  

    int myRightBorderWeight =10;  

    int myBottomBorderWeight =10;  


    if (bCalcValidRects)  

    {  

        CRect& rc = (CRect&)lpncsp->rgrc[0];//get the client rectangle 

        rc.top += myCaptionHeight - GetSystemMetrics(SM_CYCAPTION) - GetSystemMetrics(SM_CYDLGFRAME);  

        rc.left += myLeftBorderWeight - GetSystemMetrics(SM_CYDLGFRAME);  

        rc.bottom -= myBottomBorderWeight - GetSystemMetrics(SM_CYDLGFRAME);  

        rc.right -= myRightBorderWeight - GetSystemMetrics(SM_CYDLGFRAME);

    }  


    CDialogEx::OnNcCalcSize(bCalcValidRects,lpncsp);  

}


本文出自 “波波软件QQ:3083279843” 博客,请务必保留此出处http://boyka3721.blog.51cto.com/10568852/1755196

关于对话框窗体拖动的问题

原文:http://boyka3721.blog.51cto.com/10568852/1755196

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!