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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中获取dialog窗体的宽度及大小等信息相关的知识,希望对你有一定的参考价值。

参考技术A 在哪里想获得了直接调用入校函数就可以了
CRect rc;
GetWindowRect(&rc);
rc.Width();获得宽度
rc.Height();获得高度本回答被提问者采纳
参考技术B 在你的对话类中响应WM_SIZE消息,系统将自动生成一个OnSize()函数,在该函数里面添加下面代码就可以得到:
void CDataFileImportDlg::OnSize(UINT nType, int cx, int cy)

CDialog::OnSize(nType, cx, cy);
CRect rect;
GetClientRect(&rect);

rect 中就有你想要宽度,大小等信息。
参考技术C

[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动态改变窗口大小和显示位置

Android_Dialog_设置Dialog窗体的大小

	/**
	 * 设置Dialog窗体的大小
	 */
	private void setWindowSize() {
		DisplayMetrics dm = new DisplayMetrics();
		WindowManager m = getWindowManager();
		m.getDefaultDisplay().getMetrics(dm);
		// 为获取屏幕宽、高
		WindowManager.LayoutParams p = getWindow().getAttributes(); // 获取对话框当前的參数值
		// p.height = (int) (d.getHeight() * 1.0); //高度设置为屏幕的1.0
		p.width = (int) (dm.widthPixels * 0.86); // 宽度设置为屏幕的0.85
		p.alpha = 1.0f; // 设置本身透明度
		p.dimAmount = 0.6f; // 设置黑暗度
		getWindow().setAttributes(p);
	}

以上是关于MFC中获取dialog窗体的宽度及大小等信息的主要内容,如果未能解决你的问题,请参考以下文章

MFC编程中Edit框的操作

MFC中怎么让子窗体大小随着父窗口的大小变化而改变?

mfc 对话框 改变大小

Android_Dialog_设置Dialog窗体的大小

C# Windows 窗体 ListView 在按宽度自动调整大小 = -1 后获取列的实际宽度?

Winform 窗体控件随窗体自动(等比例)调整大小