VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 693|回复: 8

VC++基础课 模态与非模态对话框 调试过程中遇到问题

[复制链接]
51_avatar_middle
最佳答案
0 
online_vip 发表于 2018-1-13 17:05:06 | 显示全部楼层 |阅读模式
本帖最后由 zxnnnnn 于 2018-1-15 10:30 编辑

         我按照视频教程,       
        pDlg = new CMyDialog();    //在此处设置断点,然后F10逐语句执行
        pDlg->Create(IDD_CCTRY_DIALOG, this);
        pDlg->ShowWindow(SW_SHOW);  //在这句之后,教程里面找到下面

void CMyDialog::PostNcDestroy()
{
        // TODO: Add your specialized code here and/or call the base class
        delete this;    // 应该是这个语句,但是我调式了很多次, 也用VS2010打开老大的例程调试运行了一下,发现 pDlg->SHowWindow(SW_SHOW) 这个语句之后转入了下面的语句

        CDialog::PostNcDestroy();
}

        case AfxSigCmd_v:
                // normal command or control notification
                ASSERT(CN_COMMAND == 0);        // CN_COMMAND same as BN_CLICKED
                ASSERT(pExtra == NULL);
                (pTarget->*mmf.pfnCmd_v_v)();
                break;                                            //到这里了,很奇怪,不知道为什么?




上一篇:windows驱动开发
下一篇:请教一下
51_avatar_middle
最佳答案
8 
online_admins 发表于 2018-1-15 09:41:45 | 显示全部楼层
zxnnnnn 发表于 2018-1-15 09:24
是的,并没有走到下面delete this,不知道为什么,调式很多遍都是这样。

void CMyDialog::PostNcDestr ...

不是马上就走,得等到子对话框关闭了之后才走啊
51_avatar_middle
最佳答案
8 
online_admins 发表于 2018-1-13 20:05:04 | 显示全部楼层
没太明白楼主的意思?

pDlg = new CMyDialog();    //在此处设置断点,然后F10逐语句执行
pDlg->Create(IDD_CCTRY_DIALOG, this);
pDlg->ShowWindow(SW_SHOW);  //在这句之后,教程里面找到下面

这几句是创建对话框的代码。

void CMyDialog::PostNcDestroy()
{
        // TODO: Add your specialized code here and/or call the base class
        delete this;    // 应该是这个语句,但是我调式了很多次, 也用VS2010打开老大的例程调试运行了一下,发现 pDlg->SHowWindow(SW_SHOW) 这个语句之后转入了下面的语句

        CDialog::PostNcDestroy();
}

这个是对话框销毁的函数代码?

没太明白楼主的意思
75_avatar_middle
最佳答案
0 
在线会员 发表于 2018-1-14 18:50:21 | 显示全部楼层
按时嘎嘎桑撒
51_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2018-1-14 21:33:08 | 显示全部楼层
Syc 发表于 2018-1-13 20:05
没太明白楼主的意思?

pDlg = new CMyDialog();    //在此处设置断点,然后F10逐语句执行

我截图了,就是按照下面进行的
VC++基础课 模态与非模态对话框 调试过程中遇到问题
VC++基础课 模态与非模态对话框 调试过程中遇到问题
51_avatar_middle
最佳答案
8 
online_admins 发表于 2018-1-14 21:34:00 | 显示全部楼层
zxnnnnn 发表于 2018-1-14 21:33
我截图了,就是按照下面进行的

楼主的意思是为什么会走到第二张图的代码吗?
51_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2018-1-15 09:24:59 | 显示全部楼层
Syc 发表于 2018-1-14 21:34
楼主的意思是为什么会走到第二张图的代码吗?

是的,并没有走到下面delete this,不知道为什么,调式很多遍都是这样。

void CMyDialog::PostNcDestroy()
{
      delete this:
      CDialog::PostNcDestroy();
}
51_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2018-1-15 10:29:21 | 显示全部楼层
Syc 发表于 2018-1-15 09:41
不是马上就走,得等到子对话框关闭了之后才走啊

谢谢老大。VC++基础课 模态与非模态对话框 调试过程中遇到问题
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-11-18 20:41

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表