还有 怎样实现 在窗口放大时,其中一个控件也按比例放大

解决方案 »

  1.   

    自己处理OnSize消息
    或者用现成的库
    www.codeproject.com上面有
      

  2.   

    能具体点吗 谢谢!
     还有就是基于对话框的MFC程序 新增加的一个IDR_MENU1 怎么运行时没有显示出来呢? 
      

  3.   

    需要在源程序即.cpp中注册添加 即:enum {IDD = IDR_MENU1} 
      

  4.   

    关于对话框的菜单
    资源编辑器中对话框的属性有一个就是菜单ID
    设置一下就可以了
    关于控件调整
    你可以参考这篇文章
    http://blog.csdn.net/xianglitian/archive/2010/06/12/5667015.aspx
      

  5.   

    VC++之根据对话框大小调整控件大小
    1、在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小;
    2、在对话框的OnInitDialog()函数中获取对话框创建时的大小:GetClientRect(&m_rect);
    3、在WM_SIZE的响应函数OnSize()中加入以下代码:CWnd *pWnd;
     pWnd = GetDlgItem(IDC_LIST);     //获取控件句柄
     if(pWnd && nType!=1)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
     {
      CRect rect;   //获取控件变化前大小
      pWnd->GetWindowRect(&rect);
      ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
      // cx/m_rect.Width()为对话框在横向的变化比例
      rect.left=rect.left*cx/m_rect.Width();/////调整控件大小
      rect.right=rect.right*cx/m_rect.Width();
      rect.top=rect.top*cy/m_rect.Height();
      rect.bottom=rect.bottom*cy/m_rect.Height();
      pWnd->MoveWindow(rect);//设置控件大小
     }
     GetClientRect(&m_rect);//将变化后的对话框大小设为旧大小
      

  6.   

    1.你的对话框关联了菜单了没有?对话框属性Menu指定你的Menu ID。
    2. OnSize中MoveWindow/SetWindowPos()设置子控件的区域
      

  7.   

    太感谢 liwei__1987 了
    再问一个问题哈,点某一个按钮 ,怎样调用一个新的 对话框,初学,见谅啊
      

  8.   

    创建一个你要调用的对话框的实例,然后DoModle就可以了
      

  9.   

    调用一个新的 对话框的方法, 1)首先,新建的一个对话框,假如为test2)然后在按钮的成员函数里写上:
    test testDlg;
    testDlg.DoModal();就可以了.