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

2021-05-26 20:28:26 字數 1403 閱讀 6169

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

public:

void setcontrolinfo(word ctrlid);

protected:

int m_old_cx,m_old_cy;

cdwordarray m_control_info;

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

cgdidlg::cgdidlg(cwnd* pparent /*=null*/)

: cdialog(cgdidlg::idd, pparent)

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

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

void cgdidlg::setcontrolinfo(word ctrlid)

第四步 修改onsize訊息函式

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

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);

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

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

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

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

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

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