在对话框上创建一个CPropertySheet,CPropertySheet中每一页是 CDialogShelf(class CDialogShelf : public CPropertyPage),每一页上放置若干个CButton,我想处理鼠标点击CButton的消息。在CDialogShelf 中有:
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);
}鼠标点击时,会调用这个函数,但是函数执行到AfxMessageBox就死掉了,把AfxMessageBox去掉也同样会死掉。
我发现在对话框中CPropertySheet的创建:m_PropSheet.Create(this,WS_CHILD, 0); 如果把WS_CHILD改为WS_POPUP就不会出现问题,但这样控件就脱离对话框了。
请高手解决下!
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);
}鼠标点击时,会调用这个函数,但是函数执行到AfxMessageBox就死掉了,把AfxMessageBox去掉也同样会死掉。
我发现在对话框中CPropertySheet的创建:m_PropSheet.Create(this,WS_CHILD, 0); 如果把WS_CHILD改为WS_POPUP就不会出现问题,但这样控件就脱离对话框了。
请高手解决下!
解决方案 »
- error C2501: 'string' : missing storage-class or type specifiers 什么原因导致的?
- 怎么让非激活窗体里ListCtrl一行高亮选中??
- dll调用时的问题,急呀。
- 大手大脚之多线(进)程共享与冲突篇
- 用BCG类库开发的程序打包,需要包括BCG的哪几个动态文件啊?!我想确定一下!!!
- 请教如果访问INI文件的方法。
- RegQueryValueEx读取注册表乱码!求助!急
- dll中是不是不能直接显示对话框啊,连.DoModal()都进不去!!
- 控件的跨平台使用
- VS2010MFC单文档程序,如何修改程序标题名
- error C2440: “=” : 无法从“void *”转换为“double *”
- 如何同时选中两棵树上的节点?
在默认的情况下就有这个属性。