新建子对话框不执行OnInitDialog()

cselove 2011-09-20 02:06:24
我用的VC10。
先添加了一个子对话框IDD_DIALOG1,然后在主对话框中添加一段代码,如下
CDIALOGDlg *pDlg=new CDIALOGDlg;
pDlg->Create(IDD_DIALOG1,this);
pDlg->ShowWindow(SW_SHOW);
然后在IDD_DIALOG1对话框中的类向导中添加了虚函数 OnInitDialog()
现在发现,在主对话框中创建了子对话框后,子对话框并没有执行OnInitDialog()
然后我在OnInitDialog()中下了一个断点,发现也确实没有进入到这个函数中

然后我新建了一个工程,没任何多余的代码,只添加了创建子对话框的代码和子对话框中的OnInitDialog()
仍然没有进入到OnInitDialog()函数中。

在网上也没找到解决方法,没办法了来发帖试试能不能求到解答。
...全文
720 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cselove 2011-09-21
  • 打赏
  • 举报
回复
今天早上又试了下昨天的代码,没做什么改动,居然又行了

汗啊,难道这就是传说中的灵异事件

不管有用没用,还是感谢楼上几位的回答。
无言猪 2011-09-20
  • 打赏
  • 举报
回复 2
你这边的Create调用产生的消息是WM_CREATE,OnInitDialog相应的是WM_INITDIALOG,你应该调用DoModal
诶呦 2011-09-20
  • 打赏
  • 举报
回复
你添加的子对话框也是在主类中是吧
oyljerry 2011-09-20
  • 打赏
  • 举报
回复
Create()估计创建失败了.
罗平 2011-09-20
  • 打赏
  • 举报
回复
*pDlg不是子对话框吧,CDIALOGDlg 这个是哪个类?子对话框类,还是父对话框类?
jax_lee 2011-09-20
  • 打赏
  • 举报
回复
什么意思哦。。你是要主对话框按一个按钮弹出子对话框吗
你先给子对话框添加相应的类。。
然后在主对话框中添加子类的对象,然后(子类对象名).DoModal();
试试看

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧