我做了一个对话框ID为IDD_ADDSHORTCUTS,又在菜单栏添加了一个按钮,响应按钮的Command函数为 void CMainFrame::OnDrawAddshortcuts()。我想当点击此按钮时弹出我的对话框,代码如下,但为什么什么反应都没有呢?
void CMainFrame::OnDrawAddshortcuts()
{
// TODO: Add your command handler code here
CDialog dlg;
if(!dlg.Create(IDD_ADDSHORTCUTS,this))
AfxMessageBox("Error");
}
另外,我把代码改成如下:
void CMainFrame::OnDrawAddshortcuts()
{
// TODO: Add your command handler code here
CDialog dlg;
if(!dlg.Create(IDD_ADDSHORTCUTS,this))
;
AfxMessageBox("Error");
}
居然能出来!可是我点MessageBox的确定后就连同对话框一起消失了,这是怎么回事呢?
另外,我知道给对话框弄一个类,再用DoModal()可以出来对话框,但没有别的方法了么,create()为什么不行呢?
请大家指教。
void CMainFrame::OnDrawAddshortcuts()
{
// TODO: Add your command handler code here
CDialog dlg;
if(!dlg.Create(IDD_ADDSHORTCUTS,this))
AfxMessageBox("Error");
}
另外,我把代码改成如下:
void CMainFrame::OnDrawAddshortcuts()
{
// TODO: Add your command handler code here
CDialog dlg;
if(!dlg.Create(IDD_ADDSHORTCUTS,this))
;
AfxMessageBox("Error");
}
居然能出来!可是我点MessageBox的确定后就连同对话框一起消失了,这是怎么回事呢?
另外,我知道给对话框弄一个类,再用DoModal()可以出来对话框,但没有别的方法了么,create()为什么不行呢?
请大家指教。
解决方案 »
- 关于date time picker控件
- 一个意外的惊喜,有人知道为什么吗
- 如何正确实例化含有类的类,,,急等中....
- 100分,求脱离matlab环境的vc与matlab接口编程
- 在DirectX下如何显示动画?
- ㊣感谢大家的参与,问题还没解决,再问. 为什么我在'程序名.cpp' 的InitInstance开始时调用dll中的对话框,会导致dll运行完整个程序也随即退
- 有关属性表的问题
- 讨论:怎样进一步学好vc?
- 怎样捕获IE中选择文本的消息?高分!
- 关于消息映射的问题
- 网络编程学习
- VS2005+SP1,DEBUG没有问题,RELEASE 版崩溃在 mfc80.dll ! AfxCallWndProc(...)
{
// TODO: Add your command handler code here
CDialog dlg;
if(dlg.Create(IDD_ADDSHORTCUTS,this))
dlg.ShowWindow(SW_SHOW);
AfxMessageBox("Error");
}
dlg是局部变量,函数执行完后会销毁,应该定义成类的成员函数。或者将其定义为指针,再堆上分配内存:
pDialog = new CMyDialog();
if(pDialog != NULL)
{
BOOL ret = pDialog->Create(IDD_MYDIALOG,this);
if(!ret)
AfxMessageBox("Error creating Dialog");
pDialog->ShowWindow(SW_SHOW);
}
else
AfxMessageBox("Error Creating Dialog Object");