MFC 視窗控制項隨視窗大小進行自適應

2021-09-20 18:51:38 字數 965 閱讀 5784

通常,我們在將視窗進行最大化時會出現視窗中的控制項自適應問題,如何讓視窗中的所有控制項跟隨視窗做自適應變化,提供如下操作方法供參考

第一步、在對話方塊類中(.**件)定義如下變數和函式

void resize();

point old;

afx_msg void onsize(uint ntype, int cx, int cy);

1、首先在oninitdialog函式中獲取視窗位置座標

bool ccalctestdlg::oninitdialog()

} // 設定此對話方塊的圖示。 當應用程式主視窗不是對話方塊時,框架將自動

// 執行此操作

seticon(m_hicon, true); // 設定大圖示

seticon(m_hicon, false); // 設定小圖示

/*showwindow(sw_maximize);

showwindow(sw_minimize);*/

// todo: 在此新增額外的初始化**

crect rect;

getclientrect(&rect);

old.x = rect.right - rect.left;

old.y = rect.bottom - rect.top;

return true; // 除非將焦點設定到控制項,否則返回 true

}

2、新增 wm_size訊息,在視窗變化onsize函式中進行位置重置

void ccalctestdlg::onsize(uint ntype, int cx, int cy)

}

3、實現重新整理控制項函式

void ccalctestdlg::resize()

old = newp;

}

MFC一一視窗控制項隨視窗大小進行自適應

通常,我們在將視窗進行最大化時會出現視窗中的控制項自適應問題,如何讓視窗中的所有控制項跟隨視窗做自適應變化,提供如下操作方法供參考 1 首先在oninitdialog函式中獲取視窗位置座標 bool cdialogqual oninitdialog 2 在視窗變化onsize函式中進行位置重置 vo...

MFC控制項隨視窗大小變化原理及實現

本文主要針對mfc的dialog,實現控制項隨視窗大小變化。原理 首先獲取dialog的初始大小,當視窗傳送變動時,呼叫onsize事件和方法,計算縮放比例,然後對介面中的所有控制項進行縮放和布局。實現 建立乙個cmfcdemodlg的dialog對話方塊 cmfcdemodlg 對話方塊 clas...

MFC小筆記 控制項隨視窗變化

當視窗大小變化時,如最大化 最小化時,控制項位置和大小並沒有變化,本文實現此功能。主介面為對話方塊,有最小化 最大化 關閉等功能。當視窗變化時,響應 onsize 函式,並計算各控制項位置,按比例縮放。在對話方塊類嚮導中新增 wm size 訊息。其函式定義如下 afx msg void onsiz...