目標:
動態創建一個CButton按鈕並實現其ON_BN_CLICKED消息
實現:
一、創建按鈕
- 定義CButton變量爲類的成員變量;
CButton button; - 定義該按鈕的ID;
#define IDC_BUTTON1 8888 - 在適當的地方創建按鈕;
button.Create("BUTTON", WS_VISIBLE | WS_CHILD | WS_BORDER | BS_AUTO3STATE,
CRect(10 , 10, 100, 40), this, IDC_BUTTON1 );
二、實現ON_BN_CLICKED消息
- 在頭文件中定義消息響應函數;
// Generated message map functions
//{{AFX_MSG(CDialogTestDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
//}}AFX_MSG
afx_msg void OnBnClicked();
DECLARE_MESSAGE_MAP() - 在CPP文件中完成消息路有;
BEGIN_MESSAGE_MAP(CDialogTestDlg, CDialog)
//{{AFX_MSG_MAP(CDialogTestDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_BUTTON1, OnBnClicked)
END_MESSAGE_MAP() - 完成消息函數本身;
void CDialogTestDlg::OnBnClicked()
{
AfxMessageBox("Button1");
}