如何从MFC中获取dialog窗体的宽度及大小等信息?

2025-04-11 20:33:27
推荐回答(2个)
回答1:

在哪里想获得了直接调用入校函数就可以了
CRect rc;
GetWindowRect(&rc);
rc.Width();获得宽度
rc.Height();获得高度

回答2:

[cpp] view plaincopy

  • void CMainFrame::OnChangeSize()   

  • {  

  • // TODO: Add your command handler code here   

  • CRect cr;  

  • GetClientRect(&cr);//获取对话框客户区域大小   

  • ClientToScreen(&cr);//转换为荧幕坐标   

  • int x= GetSystemMetrics(SM_CXSCREEN);//获取荧幕坐标的宽度,单位为像素   

  • int y=   GetSystemMetrics(SM_CYSCREEN);//获取荧幕坐标的高度,单位为像素   

  • //MoveWindow((x-cr.Width() *2)/2 ,cr.top,cr.Width() *2,cr.Height() *2);//设置窗口显示的位置以及大小   

  • MoveWindow(cr.left ,cr.top,cr.Width(),cr.Height()/2);//设置窗口显示的位置以及大小   

  • }  

  • [cpp] view plain copy

  • void CMainFrame::OnChangeSize()   

  • {  

  • // TODO: Add your command handler code here  

  • CRect cr;  

  • GetClientRect(&cr);//获取对话框客户区域大小  

  • ClientToScreen(&cr);//转换为荧幕坐标  

  • int x= GetSystemMetrics(SM_CXSCREEN);//获取荧幕坐标的宽度,单位为像素  

  • int y=   GetSystemMetrics(SM_CYSCREEN);//获取荧幕坐标的高度,单位为像素  

  • //MoveWindow((x-cr.Width() *2)/2 ,cr.top,cr.Width() *2,cr.Height() *2);//设置窗口显示的位置以及大小  

  • MoveWindow(cr.left ,cr.top,cr.Width(),cr.Height()/2);//设置窗口显示的位置以及大小  

  • }  

  • mfc动态改变对话框窗口大小和显示位置

    C++代码

    123456
  •    
  • CRect
    cr;GetClientRect(&cr);//获取对话框客户区域大小ClientToScreen(&cr);//转换为荧幕坐标 intx=
    GetSystemMetrics(SM_CXSCREEN);//获取荧幕坐标的宽度,单位为像素inty=  
    GetSystemMetrics(SM_CYSCREEN);//获取荧幕坐标的高度,单位为像素MoveWindow((x-cr.Width()
    *2)/2 ,cr.top,cr.Width() *2,cr.Height() *2);//设置窗口显示的位置以及大小
  •    
  • 描述:mfc动态改变窗口大小和显示位置