VC 控件动态添加的方法
Flyli
有些时候为了某种目的,我们希望系统的控件能够自动根据我们的需要添加而不是必须提前在对话框里画进去,这个时候我们就需要动态的进行控件的生成.
具体的我们可以以CEdit(文本框控件)为例来说明
第一步:
必须添加一个CEdit的指针,然后在给指针开辟相应的空间. 这里需要说明的是,我们必须定义指针,而不是直接定义这个类,具体原因我不在这里解释,这里我们这么写;
CEdit* Text = new CEdit();
第二步:
创建控件,我利用create看书对text进行初始化,并将其显示到桌面上.代码如下:
RECT rect;
rect.top = 0;
rect.left = 0;
rect.right =100 ;
rect.top = 100;
Text->Create(WS_CHILD | WS_VISIBLE,rect,(CWnd*)this,FID_ADDRESS);
这里需要加以说明的是第一个参数表明的是控件的样式,起具体含义可以从MSDN中获得,第二个参数是控件显示在窗口上的位置,第三个控件是控件所在窗口,第四个参数值得是控件的ID,其定义需要在resource.h和String table资源中加以定义,假如测试用的话可以将其定义为一个未经定义过的常数,例如:2008.
之后的TEXT就可以被当成一个普通的经过DDX_Control的函数一样的控制了,比如想得到其中的数值,只需要
CString xxx;
text->GetWindowText(xxx);
这样控件中的数值就被读入到了xxx这个字符串中了.
此文章如需转载请注明作者姓名,谢谢合作