本文以创建按钮为例 在VC中创建一个对话框工程,本例中为“手工创建控件”,为方便起见,我们在对话框中先画一个按钮,并将按钮ID设置为:IDC_CREATE_BUTTON,标题为:“创建”,然后在Dlg对话框类下面创建一个CButton *pButton的指针变量,在OnInitDialog中把pButton指向NULL,完成初始化之后,开始编写创建按钮代码,在IDC_CREATE_BUTTON按钮上双击,进入到: void CMyDlg::OnCreateButton() 代码编写中,编写如下代码:
void CMyDlg::OnCreateButton()
{
// TODO: Add your control notification handler code here
if(pButton == NULL)
pButton = new CButton;
static BOOL bCreate = FALSE;
if( !bCreate )
{
TCHAR szCaption[] = TEXT("手工创建按钮");
DWORD dwStyle = WS_CHILD| WS_GROUP | WS_VISIBLE | WS_TABSTOP ;
CRect r ;
GetClientRect(&r);
r.left = r.left +100;
r.right = r.left + lstrlen(szCaption)*10; //一个字约10个像素大小
r.bottom = r.top + 20;
pButton->Create(szCaption,dwStyle,r,this,IDC_CREATE_BUTTON+1);
bCreate = TRUE;
}
}
然后编写创建按钮测试代码,在CMyDlg中编写
afx_msg void OnPress();
在消息宏处理中编写
ON_BN_CLICKED(IDC_CREATE_BUTTON, OnPress)
然后在类定义中编写
void MyDlg::OnPress()
{
AfxMessageBox("按钮被按下"); //用一个消息框提示按钮创建成功
}
之后编译运行,点击创建按钮,将在对话框顶端创建一个标题为:“手工创建按钮”的按钮,点击后将抛出一个“按钮被按下”的消息框。