打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
控件随对话框改变带大小
1、用easysize类
2、如果是里面只有一两个控件倒好办,但控件太多的话这样做是不是重复劳动太多了?


视类中加成员函数和成员变量:
        void   SetControlInfo(WORD   CtrlId);
protected:
        int   m_old_cx,m_old_cy;
        CDWordArray   m_control_info;
 
构造函数中初始化:
        m_old_cx   =   m_old_cy   =  0;
 
加控件信息的函数定义:
void   CTestFormView::SetControlInfo(WORD   CtrlId)
{
        m_control_info.Add(CtrlId);
 
}

修改OnSize函数:
void   CTestFormView::OnSize(UINT   nType,   int   cx,  int   cy)
{
        if(cx==0   ||   cy==0)
        {
                cx=800;
                cy=600;
        }
        CFormView::OnSize(nType,   cx,   cy);
        float   dx_percent   =   (m_old_cx  ==0)?   1   :   (float)((float)cx/(float)m_old_cx);
        float   dy_percent   =   (m_old_cy  ==0)?   1   :     (float)((float)cy/(float)m_old_cy);
 
        if(m_old_cx)
        {
                CRect   WndRect;
                CWnd   *pWnd;
                for(int   i  =   0;   i   <   m_control_info.GetSize();   i++)
                {
                       pWnd   =   GetDlgItem(m_control_info[i]);
                       if(!pWnd)
                       {
                               TRACE( "Control   ID   -  %d   NOT   FOUND!!\n ",m_control_info[i]);


                               continue;
                       }
 
                       pWnd-> GetWindowRect(&WndRect);
                       ScreenToClient(&WndRect);
 
                       WndRect.left   =   (int)(WndRect.left*dx_percent);
                       WndRect.right   =   (int)(WndRect.right*   dx_percent);
                       WndRect.bottom   =   (int)(WndRect.bottom*dy_percent);
                       WndRect.top   =   (int)(WndRect.top*dy_percent);
 
                       pWnd-> MoveWindow(&WndRect);
                }
 
        }
        m_old_cx   =   cx;
        m_old_cy   =   cy;
}
 
在OnInitialUpdate函数中加入控件ID:
        SetControlInfo(IDC_BUTTON1);
            。。。。。。。。。。。。。。。。

Dialog也一样!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
控件大小随窗口变化的方法(MFC)
VC++之随父窗口变化调整控件大小
MFC控件随窗口大小变化,多次缩放不改变位置
SLAM程序阅读(第8讲 稀疏直接法)
C++-实现matlab的fftshift(OpenCV)
编程中国 - 积累的VC编程小技巧之按钮
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服