1、动态创建
CButton *pBtn = new CButton();
if (pBtn)
{
pBtn->Create(sbtnName, WS_VISIBLE, m_nRect[i], this, IDC_BTN_ID+i);
m_btnMap.insert(make_pair(sbtnName,pBtn));
}
2、设置关联事件
#define IDC_BTN_ID 20000
#define IDC_BTN_ID30 20030
BEGIN_MESSAGE_MAP(CControlDlg, CDialogEx)
ON_WM_PAINT()
ON_COMMAND_RANGE(IDC_BTN_ID,IDC_BTN_ID30,onBnCLick)
ON_WM_LBUTTONDOWN()
ON_BN_CLICKED(IDOK, &CControlDlg::OnBnClickedOk)
END_MESSAGE_MAP()
afx_msg void onBnCLick(UINT );
3、销毁
BTNCTRL_MAP::iterator nIt = m_btnMap.begin();
for (;nIt !=m_btnMap.end();++nIt)
{
CButton *pBtn = nIt->second;
if (pBtn)
{
pBtn->DestroyWindow();
delete pBtn;
}
}
m_btnMap.clear(); |