EasySize类范例程序(EasySize_demo,EasySize_src)
下载地址http://www.codeproject.com/KB/dialog/easysize.aspx
使用说明
步骤一
a将#include EasySize.h加载入stdafx.h
b或者将#include EasySize.h加载入TestCurveDlg.h中,即直接放入需要使用的窗口文件
实际应用时,采用b方式,否则会出现编译错误
步骤二
将DECLARE_EASYSIZE添加到任何一处类声明中(TestCurveDlg.h)
class CTestCurveDlg : public CDialog
{
DECLARE_EASYSIZE
创建OnInitDialog(如果程序中不存在的话,不程序中原本就有),将"INIT_EASYSIZE;"添加进去(TestCurveDlg.cpp)
BOOL CTestCurveDlg::OnInitDialog()
{
... ...
}
创建OnSize,将UPDATE_EASYSIZE添加进去(TestCurveDlg.cpp)
void CTestCurveDlg::OnSize(UINT nType, int cx, int cy)
{
CRect rect;
如果需要用户设置的最小化功能,可以创建OnSizing,添加EASYSIZE_MINSIZE(具体可参照EasySize_demo)
void CEasySizeDemoDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
}
//(in this example, 280 is the minimum width and 250 the minimum height we want our dialog to have)
创建一个"EasySize Map",功能:设置放大/缩小窗口时的显示效果,可以放在类的任何位置。
BEGIN_EASYSIZE_MAP(class_name)
END_EASYSIZE_MAP
BEGIN_EASYSIZE_MAP(CTestCurveDlg)
EASYSIZE(IDC_STATIC,ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel0, ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel1, ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel2, ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel3, ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel4, ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel5, ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel6, ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel7, ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel8, ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel9, ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel10,ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel11,ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel12,ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel13,ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel14,ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CHECK_Channel15,ES_KEEPSIZE,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_BUTTON_OpenFile,ES_KEEPSIZE,ES_KEEPSIZE,ES_BORDER,ES_BORDER,0)
EASYSIZE(IDC_BUTTON_ZoomOut, ES_KEEPSIZE,ES_KEEPSIZE,ES_BORDER,ES_BORDER,0)
EASYSIZE(IDC_BUTTON_Resort,
EASYSIZE(IDC_STATIC_CURVE,ES_BORDER,ES_BORDER,IDC_STATIC,IDC_BUTTON_ZoomOut,0)
END_EASYSIZE_MAP
...
注释
EASYSIZE(control,left,top,right,bottom,options)
Control---控件的ID,需要设置的控件
left top right bottom---矩形框的位置,可以设置的参数:ES_BORDER、ES_KEEPSIZE、其他control的ID。
Control
iii top=ID2
iv bottom=ID2 ID1下边到ID2上边的距离保持不变(不管ID2如何变化)
options---特别操作ES_HCENTER, ES_VCENTER and 0的结合。
0代表没有任何操作;
ES_HCENTER代表控件在left/right之间水平居中,此时left/right都不能设置成ES_KEEPSIZE,控件的宽度保持不变;
ES_VCENTER同理ES_HCENTER