在项目开发时,可能遇到动态创建控件的情况。如根据当前用户的数量,动态创建控件显示用户信息等情况,需要动态常见静态文本框和编辑框等。
此时,利用控件类中Create()函数进行动态创建,默认是显示状态。如:
头文件定义:CStatic *p_MyStatic;
CPP中实现:
p_MyStatic = new CStatic();
p_MyStatic->Create("静态文本框",WS_CHILD|WS_VISIBLE|SS_CENTER,CRect(0,i*perHeight+5,perWidth,(i+1)*perHeight+5),this);
在退出时:
if(pStatic!=NULL)
delete pStatic;
对于单个或者固定数量的控件可以使用指针数组CStatic *p_MyStatic[TOTALCOUTS]照此进行。
但当TOTALCOUTS不固定时,可以使用MFC中CPtrArray进行开发,CPtrArray是一个链表类,用于保存动态创建的控件地址。
实现如下图所示的界面。
下面附上具体的代码:
// DynamicMultiCtrlsDlg.h : 头文件
#define EDIT_ID 10000
public:
CPtrArray p_MyStatics;
CPtrArray p_MyEdits;