EasySize是VC中用于排版控件的非常实用的东东.对于初学者来说, 使用起来非常难以理解, 更别提弄出理想的效果.
在这里, 我想说一下如何使用. 这里主要是说怎么使用EASYSIZE宏的.
BEGIN_EASYSIZE_MAP(which_dialog)
EASYSIZE( control_id,left,top,right,bottom,option)
END_EASYSIZE_MAP
如上, which_dialog标明了是哪个对话框将使用EasySize.
control_id, 即是控件ID, left, top, right, bottom为各个方向的属性, option一般是用来设置居中对齐的.
先说left等方向的属性, 一般可设:
ES_BORDER, 这个是chich_dialog的边框
ES_KEEPSIZE, 保持大小
control_id 某个控件的ID
比如: EASYSIZE(IDC_TITLE,ES_BORDER,ES_BORDER,ES_BORDER,ES_KEEPSIZE,ES_HCENTER)
两个红色的, 是左和右, 两个蓝色的是上和下, 绿色的是对齐方式.
上面这个则表示, 控件ID为IDC_TITLE的控件, 左和右与对话框边框保持距离, 红色部分.
上方是ES_BORDER, 表示与上边框保持距离.
下方是ES_KEEPSIZE, 表示该控件不会随着对话框窗体的拉伸也改变下方的大小(不会被拉伸).
option中ES_HCENTER, 表示水平居中, 注意, 是水平居中, 这是表示该控件会出现在left和right的正中间,
看红色部分, 两个红色都是边框, 所以该控件会显示在窗体的正中间(水平方向). 如果有控件的话, 如:
EASYSIZE(IDC_TITLE,IDC_STATIC_X, ES_BORDER,,ES_BORDER,ES_KEEPSIZE,ES_HCENTER)
则IDC_TITLE所在的位置就会是IDC_STATIC_X和右边框的中间位置.
option是可以设置为0的, 表示没有其它的选项.
设置控件的ID, 一般表示是某一边与某一控件对齐(保持距离), 如
EASYSIZE(IDC_MYICON2,ES_BORDER,ES_BORDER,IDC_TITLE,ES_KEEPSIZE,ES_HCENTER)
我们看红色部分, 它是一个控件ID, 表示上(top)与控件ID为IDC_TITLE的控件对齐(保持距离).
其他的设置是一样的.
最后要说一点是, 也是非常非常重要的, 当初被害得不浅, 就是设置的时候是有先后顺序的..
所以如果顺序设得不对, 产生的布局是有天壤之别的.
http://www.cnblogs.com/lin1270/archive/2010/12/08/1900363.html