位置要自己通过计算进行设定,动态创佳时,要注意保存指针,以便关闭是释放,如:
CButton* pButton = new CButton;
pButton->Create(...);
...
pButton->SendMessage(WM_CLOSE,0,0);
delete pButton;
CButton* pButton = new CButton;
pButton->Create(...);
...
pButton->SendMessage(WM_CLOSE,0,0);
delete pButton;
{
// TODO: Add your message handler code here and/or call default
m_ctlButton= new CButton;
m_ctlButton->Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(10,40,100,70),this, ID_BUTTON);
m_ctlButton->ShowWindow(SW_SHOW); CDialog::OnLButtonDblClk(nFlags, point);
}
//加上这个变量
CEdit m_MyEdit;protected:
//加上这个函数, 用来响应编辑框改变的事件
afx_msg void OnChangeEdit();
在CMyDlg.cpp中做下面几个动作:
//增加这一行
#define ID_MYEDT 1820在函数void CMyDlg::DoDataExchange(CDataExchange* pDX)中加入 DDX_Text(pDX, IDC_MYEDT, m_MyEdt);
在BEGIN_MESSAGE_MAP(CMyDlg, CDialog)下面加入ON_EN_CHANGE(ID_MYEDT, OnChangeEdit)
你要在CMyDlg.cpp中实现OnChangeEdit()函数;
好了,做完以上步骤以后你就可以动态生成控件了.
m_edtArray[Index-1].CreateEx(WS_EX_CLIENTEDGE, // Make a 3D-border
_T("EDIT"),
NULL,
ES_AUTOHSCROLL |
ES_LEFT | ES_NOHIDESEL |
WS_CHILD,
rect, this,
ID_MYEDT);//生成edit控件
GetDlgItem(ID_MYEDT)->DestroyWindow() ;//销毁控件
_T("EDIT"),
NULL,
ES_AUTOHSCROLL ¦
ES_LEFT ¦ ES_NOHIDESEL ¦
WS_CHILD,
rect, this,
ID_MYEDT);//生成edit控件
m_MyEdit.CreateEx(WS_EX_CLIENTEDGE, // Make a 3D-border
_T("EDIT"),
NULL,
ES_AUTOHSCROLL ¦
ES_LEFT ¦ ES_NOHIDESEL ¦
WS_CHILD,
rect, this,
ID_MYEDT);//生成edit控件
加上这么一句:
DDX_Text(pDX, IDC_MYEDT, m_MyEdt);你的mail是多少?
我发个例子给你.