1.不同分屏幕辨率下FormView视图中控件的动态调整?
2.不同分屏幕辨率下FormView视图中位图的动态调整?对话框中的控件和视图的调整 也是和FormView中一样的方法吗?说说思路 ,或者提供相关的资料或代码

解决方案 »

  1.   


    1.不同分屏幕辨率下FormView视图中控件的动态调整? 
    2.不同分屏幕辨率下FormView视图中位图的动态调整? 对话框中的控件和位图的调整 也是和FormView中一样的方法吗? 说说思路 ,或者提供相关的资料或代码
      

  2.   

    应该是在OnSize中动态调整布局。
      

  3.   

    FormView一般是不做调整的。你想调整成什么样子?
      

  4.   

    例如在19宽屏中, formview 中各个控件的位置固定好,但是在17屏幕上,各个控件控件的位置发生了 位移,包括位图 也是这样子我 想不管在 多大的屏幕上,它的控件和位图能能随着屏幕大小的动态按比例的缩放
      

  5.   

    http://bbs.itzhe.cn/thread-99896-1-54.html
      

  6.   

    用ResizableLib库试试看
    http://www.codeproject.com/KB/dialog/resizablelib.aspx
      

  7.   

    在OnInitialUpdate中,或者响应WM_SIZE消息,逐个计算每个控件矩形,然后MoveWindow。
      

  8.   

    在消息处理函数OnSize里,加控制
    如:    CWnd *pWnd; 
        pWnd = GetDlgItem(IDC_youritem);     //获取控件句柄,IDC_youritem为任一控件    if(nType==1) return;   //如果是窗体最小化则什么都不做    if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
        {
    CRect rect;
    this->GetWindowRect(&rect);
    ScreenToClient(&rect);            //获取和设置控件大小及位置; 可先获取初始大小(即formview里自己绘制的尺寸),
                  //然后根据rect相应缩放即位置设置。如下示例:
                      
                      Crect temp,myrect;                  GetDlgItem(IDC_youritem)->GetWindowRect(&temp);
    ScreenToClient(&temp);                   //初始大小temp
                //如设置为右上角同rect,宽不变,高rect一半
    myrect.top=rect.top;
    myrect.bottom=rect.top+rect.Height()/2;
                    myrect.right=rect.right;
                    myrect.left=rect.right-temp.Witdh();                GetDlgItem(IDC_youritem)->MoveWindow(&myrect);           /*             自己的设置
                 */              
        }
      

  9.   

    敲错了一个地方
    Crect temp,myrect; 
    应该是CRect ……
      

  10.   

    我还是觉得http://www.codeproject.com/KB/dialog/resizablelib.aspx, 这个对你有些帮助, 就是不能直接用库, 也可以了解一下他的实现原理, 开阔一下思路.