MFC中控制項大小隨對話方塊大小動態變化

2021-06-19 07:45:23 字數 1547 閱讀 5321

首先在***dlg.h標頭檔案中定義

[cpp]view plain

copy

print?

crect m_rectmin;//用於儲存初始化對話方塊的大小

crect button1rectinit;//用於儲存初始化控制項的大小

crect m_rectmin;//用於儲存初始化對話方塊的大小

crect button1rectinit;//用於儲存初始化控制項的大小

然後定義乙個變化函式

[cpp]view plain

copy

print?

//控制項大小位置隨對話方塊大小任意變化  

//引數是控制項id  控制項初始化引數lprect 

void autosize(uint nid,lprect lprect);  

//控制項大小位置隨對話方塊大小任意變化  

//引數是控制項id 控制項初始化引數lprect

void autosize(uint nid,lprect lprect);

在***dlg.cpp檔案中,新增如下**:

[cpp]view plain

copy

print?

***dlg::oninitdialog()    

***dlg::oninitdialog()

[cpp]view plain

copy

print?

void cpisproctoolsdlg::autosize(uint nid,lprect lprect)    

void cpisproctoolsdlg::autosize(uint nid,lprect lprect)

然後過載wm_size函式和wm_ongetminmaxinfo函式:

[cpp]view plain

copy

print?

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

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

[cpp]view plain

copy

print?

void cpisproctoolsdlg::ongetminmaxinfo(minmaxinfo* lpmmi)//限制對話方塊大小下限  

void cpisproctoolsdlg::ongetminmaxinfo(minmaxinfo* lpmmi)//限制對話方塊大小下限

MFC對話方塊內控制項大小隨著對話方塊大小變化

1 首先要知道對話方塊大小是否改變,改變了多少,我們應該記錄當前對話方塊的大小。在對話方塊類中新增成員變數 crect m rect 他是用來記錄當前對話方塊的大小。我們在oninitdialog 函式中獲取對話方塊建立時的大小 getclientrect m rect 2 增加訊息wm size的...

對話方塊控制項大小隨視窗的大小變化而變化

我們經常會發現當我們將視窗最大化時,裡面的控制項並沒有進行改變,接下來我就介紹一下此問題的解決辦法,我們其實一般的都會把視窗的最大化按鈕失效,是視窗不能進行最大化操作,但是有時候我們還是需要對視窗進行最大化操作的,下面我們可以通過新增wm size訊息來解決此問題。1 在xxdlg.h中新增 afx...

MFC控制項跟隨對話方塊自適應大小

對話方塊的大小變化後,假若對話方塊上的控制項大小不變化,看起來會比較難看。下面就介紹怎麼讓對話方塊上的控制項隨著對話方塊的大小的變化自動調整。首先明確的是windows有乙個wm size訊息響應函式,這個函式在對話方塊大小發生變化的時候呼叫,所以我們可以記錄下原來對話方塊的大小,還有當前對話方塊的...