1.首先將EasySize.h拷貝到工程文件夾中,然后在stdafx.h中包含該頭文件:
#include "EasySize.h"
2.類(lèi)似于消息映射機制的方式,在對話(huà)框類(lèi)聲明中添加DECLARE_EASYSIZE宏:
class CEasySizeDemoDlg : public CDialog
{
DECLARE_EASYSIZE
...
3.在OnInitDialog()函數中添加INIT_EASYSIZE宏(注意有分號):
BOOL CEasySizeDemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
...
INIT_EASYSIZE;
return TRUE; // return TRUE unless you set the focus to a control
}
4.響應WM_SIZE消息,在響應函數中添加UPDATE_EASYSIZE宏(注意有分號):
void CEasySizeDemoDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
UPDATE_EASYSIZE;
}
5.如果需要限制對話(huà)框有一個(gè)最小尺寸,首先在資源視圖中為對話(huà)框添加上最大化最小化按鈕,然后Class Wizard中選擇Class Info標簽,在Message fileter下拉列表中選擇Window,然后再點(diǎn)擊Message Maps標簽,就出現WM_SIZING消息了,添加該消息的響應函數:
void CEasySizeDemoDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
CDialog::OnSizing(fwSide, pRect);
EASYSIZE_MINSIZE(600,400,fwSide,pRect);
}
這樣就把對話(huà)框的最小尺寸限制在(600, 400)上了
6.添加控件布局映射,放到消息映射之后,基本格式如下:
BEGIN_EASYSIZE_MAP(class_name)
...
EASYSIZE(control,left,top,right,bottom,options)
...
END_EASYSIZE_MAP
下面是關(guān)于EASYSIZE(control,left,top,right,bottom,options)的說(shuō)明
control為對話(huà)框中的控件ID值,left,top,right,bottom四個(gè)參數為控件位置的坐標,其值可以選擇ES_BORDER,ES_KEEPSIZE, 控件ID值三者之一。Options可以為ES_HCENTER, ES_VCENTER的結合,options可置0。
ES_BORDER表示控件與對話(huà)框邊界(以下簡(jiǎn)稱(chēng)邊界)的距離;
ES_KEEPSIZE表示控件水平/垂直方向上尺寸保持不變;
控件ID值表示當前控件與指定控件之間的距離;
ES_HCENTER表示縮放后控件在指定位置內水平居中;