設定控制項隨視窗大小而改變

2021-06-20 15:09:07 字數 1750 閱讀 5187

第一步:在類中加入成員函式和成員變數

[cpp]view plain

copy

public

:  void

setcontrolinfo(

word

ctrlid);  

protected

:  int

m_old_cx,m_old_cy;  

cdwordarray m_control_info;  

第二步   在類的建構函式中初始化變數

[cpp]view plain

copy

cgdidlg::cgdidlg(cwnd* pparent 

/*=null*/

)  : cdialog(cgdidlg::idd, pparent)    

注意: 是在類的建構函式中初始化,不是在類的init函式中進行初始化 

第三步    定義實現成員函式setcontrolinfo(word ctrlid)

[cpp]view plain

copy

void

cgdidlg::setcontrolinfo(

word

ctrlid)    

第四步 修改onsize訊息函式

[cpp]view plain

copy

void

cgdidlg::onsize(

uint

ntype, 

intcx, 

intcy)  

cdialog::onsize(ntype, cx, cy);  

float

dx_percent   =   (m_old_cx  ==0)?   1   :   (

float

)((float

)cx/(

float

)m_old_cx);   

float

dy_percent   =   (m_old_cy  ==0)?   1   :     (

float

)((float

)cy/(

float

)m_old_cy);  

if(m_old_cx)   

pwnd-> getwindowrect(&wndrect);   

screentoclient(&wndrect);   

wndrect.left   =   (int

)(wndrect.left*dx_percent);   

wndrect.right   =   (int

)(wndrect.right*   dx_percent);   

wndrect.bottom   =   (int

)(wndrect.bottom*dy_percent);   

wndrect.top   =   (int

)(wndrect.top*dy_percent);   

pwnd-> movewindow(&wndrect);   

}   

}   

m_old_cx   =   cx;   

m_old_cy   =   cy;   

} 《第五步 在oninitdialog初始化函式中 加入控制項id

setcontrolinfo(idc_button1);   

設定控制項隨視窗大小而改變

第一步 在類中加入成員函式和成員變數 public void setcontrolinfo word ctrlid protected int m old cx,m old cy cdwordarray m control info 第二步 在類的建構函式中初始化變數 cgdidlg cgdidlg...

wpf 控制項大小隨窗體大小改變而改變

wpf可以直接通過設定圖形類控制項的水平和垂直alighment為stretch實現 用乙個viewbox裝上所有的window內容然後當window縮放時就可以一起放大縮小了 viewbox的顯示機制是,先在記憶體中把按照邏輯大小把子控制項顯示出來,然後等比例的縮放顯示到viewbox的客戶區 例...

wpf 控制項大小隨窗體大小改變而改變

wpf可以直接通過設定圖形類控制項的水平和垂直alighment為stretch實現 用乙個viewbox裝上所有的window內容然後當window縮放時就可以一起放大縮小了 viewbox的顯示機制是,先在記憶體中把按照邏輯大小把子控制項顯示出來,然後等比例的縮放顯示到viewbox的客戶區 例...