主题:[讨论]CPropertySheet的使用
在对话框上创建一个CPropertySheet,CPropertySheet中每一页是 CDialogShelf(class CDialogShelf : public CPropertyPage),每一页上放置若干个CButton,我想处理鼠标点击CButton的消息。
在CDialogShelf 中有:
[code=c]
BEGIN_MESSAGE_MAP(CDialogShelf, CPropertyPage)
ON_CONTROL_RANGE(BN_CLICKED,BTNID_0,BTNID_0+BTN_NUM,OnBnClikedBtn)
END_MESSAGE_MAP()
void CDialogShelf::OnBnClikedBtn(UINT uID)
{
UINT BtnID = uID - BTNID_0;
CString tmpStr;
tmpStr.Format(_T("it is: %d"),BtnID);
AfxMessageBox(tmpStr);
}
[/code]
鼠标点击时,会调用这个函数,但是函数执行到AfxMessageBox就死掉了,把AfxMessageBox去掉也同样会死掉。
我发现在对话框中CPropertySheet的创建:m_PropSheet.Create(this,WS_CHILD, 0); 如果把WS_CHILD改为WS_POPUP就不会出现问题,但这样控件就脱离对话框了。
请高手解决下!
在CDialogShelf 中有:
[code=c]
BEGIN_MESSAGE_MAP(CDialogShelf, CPropertyPage)
ON_CONTROL_RANGE(BN_CLICKED,BTNID_0,BTNID_0+BTN_NUM,OnBnClikedBtn)
END_MESSAGE_MAP()
void CDialogShelf::OnBnClikedBtn(UINT uID)
{
UINT BtnID = uID - BTNID_0;
CString tmpStr;
tmpStr.Format(_T("it is: %d"),BtnID);
AfxMessageBox(tmpStr);
}
[/code]
鼠标点击时,会调用这个函数,但是函数执行到AfxMessageBox就死掉了,把AfxMessageBox去掉也同样会死掉。
我发现在对话框中CPropertySheet的创建:m_PropSheet.Create(this,WS_CHILD, 0); 如果把WS_CHILD改为WS_POPUP就不会出现问题,但这样控件就脱离对话框了。
请高手解决下!