如何获得程序主窗口的大小,同时,调整窗口大小的同时,窗口上的控件的相对位置随窗口改变而改变

解决方案 »

  1.   

    GetWindowRect获得程序主窗口的大小,
    在onSize()中动态改变控件位置,SetWindowPos
      

  2.   

    GetWindowRect
    MoveWindow或者SetWindowPos
      

  3.   

    CRect rect;
    AfxGetApp()->GetMainWnd()->GetWindowRect(&rect);
      

  4.   

    (CMainFrm*)AfxGetApp()->GetClientRect(rect)
      

  5.   

    用 GetWindowRect 可以获得窗口的大小(包括非客户区:标题及边框等), 
    用 GetClientRect 可以获得窗口的客户区,
    要让窗口上的控件的相对位置随窗口改变而改变,记住移动时子窗口的位置是相对于父窗口的客户区的位置。
      

  6.   

    Qiushen(忘魂) ( ) 信誉:95  2006-06-08 11:40:00  得分: 0  
     
     
       CRect rect;
    AfxGetApp()->GetMainWnd()->GetWindowRect(&rect);
      
     
    这个应该就可以的,刚才我的那个有问题
      

  7.   

    获得窗口大小就是GetWindowRect()控件位置跟着变化,就很麻烦了,一般你要记录他们最初的位置坐标,设定参照标志,比如有些按钮变化中相对父窗口底部距离不变,而有些按钮相对左邻按钮的距离不变........然后在OnSize()里面根据参照标志分别处理,都要你自己做的,慢慢搞吧,给我写分吧,我马上4个三角了
      

  8.   

    我的是对话框程序,OnSize()需要重写吗?
      

  9.   

    GetWindowRect()可以获得窗口大小结构,控件的位置要在主窗口的OnSize函数中自己调整
    BOOL GetWindowRect( HWND hWnd, LPRECT lpRect );OnSize(...)
    {
    调整控件的位置
    ......
    }
      

  10.   

    给你的对话框添加OnSize事件,编辑模式下选中对话框,右键->Envents->添加WM_SIZE事件,然后在OnSize里面写上控件位置的改变的代码(MoveWindow或者SetWindowPos之类).