mzjs-long

控件随窗口大小变化而变化,控件自动定位拉伸方法

网上找了个类ClxDialog能够实现控件自动定位,拉伸.
原理通过OnSize里的几个参数UINT nType, int cx, int cy进行运算.
但会有几个问题:
1. 当窗口设为child类型时,nType的值总是0.
2.当窗口拉到特别小,再拉到原来大小,控件都会变形.
3.当窗口最小化,再恢复时,CListCtrl控件变形.

这是本人在使用时发现的问题,因此本人对此作了较大的修改.
原理是:不使用OnSize的参数,而是通过保存窗口初始化时的值.
当窗口变化时,再计出变化的大小.
详情见源码.

使用方法;
在OnInitDialog加入
// 控件信息数组

static DLGCTLINFO dcMenuGroup[] =

{

{IDC_BTN_ADD, MOVEX, 100},

{IDC_BTN_EDIT, MOVEX, 100},

{IDC_BTN_DEL, MOVEX, 100},

{IDC_BTN_EXEC, MOVEX, 100},

{IDC_BTN_STOP, MOVEX, 100},

{IDC_LIST_TASK, ELASTICXY, 100},

 

};

 

// 设置控件信息

SetControlProperty(dcMenuGroup, sizeof(dcMenuGroup)/sizeof(DLGCTLINFO));
复制代码
在OnSize调用
CDialogEx::OnSize(nType, cx, cy);


 
来自 [萝岗九龙社区] http://www.gzzsc.net

posted on 2011-09-21 22:48 白河愁 阅读(1779) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理