事实上,我有两个关于对话框大小的问题:
1.
我写了一个对话框程序,本来不是最大化的(因为vc资源编辑器编辑不太方便,所以,我只选择了通常的大小),在画完对话框后(一个对话框 ,对话框上有一个listctrl,三个按钮,一个combox),现在我想让程序运行时使窗口最大化,当然,里面的控件也要按比例变化,我用了pWnd->Showwindow(...SW_MAXMIZED),但是,只是话框变化了,控件大小及相对位置不动,这样会使窗口变的很不协调,以前调整的各个控件的位置关系也就全变了。我不知道怎么做能实现我的要求。2.如何根据屏幕的分辨率自动调整大小?比如说,我现在是1024*768的分辨率,现在对话框恰好是最大化(充满整个窗口,不大不小,正好),但如果用户改变成了800*600的分辨率了,那么对话框窗口就不再正好适应屏幕的大小,如何解决这个问题?
谢谢各位了~~

解决方案 »

  1.   

    没什么简单的方法,只能自己计算控件的大小,位置,然后SetWindowPos.
      

  2.   

    只有按 dirdirdir3(风) 说的做,自已按比例计算控件大小,然后在OnSize中调用每个控件的MoveWindow来实现。这里要注意的是在OnSize里,要检查控件是否已经真正建立起来了哟,不然会出错的。
      

  3.   

    http://www.codeproject.com/dialog/resizabledialog.asp
      

  4.   

    http://www.codeproject.com/useritems/SizingDialog.asp
      

  5.   

    可放缩的对话框。控件一起变化。我看了一下,挺不错的哦。
    http://www.codeproject.com/useritems/SizingDialog.asp
      

  6.   

    嗯。其中专门有个CSizeDialog类,从CDialog派生。你直接使用这个类作为你的对话框的基类就OK了。
      

  7.   

    codeporject里的那个很好用,哈哈。不用写其他的了。
      

  8.   

    以前自己是用笨办法自己movewindow 调整控件的大小原来有现成的类可以用阿好好