模式对话框变为非模式对话框问题

wuqiangu 2008-06-13 02:22:29
环境:Windows xp sp2
Visual studio 2005

状况:
1,基于对话框的工程。
2,有一个主对话框 MainDlg
3,主对话框 MainDlg上有一个按钮A
4,按钮A的消息处理函数中,CTestDlg dlg; dlg.DoModl();
5,子对话框CTestDlg弹出,此时CTestDlg是模式的,MainDlg无法操作。

问题:如果在CTestDlg类的OnInitDialog()里面,加上AfxMessageBox("asdf")等消息提示的话,
AfxMessageBox关闭后,弹出的CTestDlg对话框就成为非模式的了,MainDlg也可以操作了。


请问怎样可以避免这种问题。我想让CTestDlg一直都是模式的。
...全文
205 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuqiangu 2008-06-16
  • 打赏
  • 举报
回复
UP
wuqiangu 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jackson35296 的回复:]
我用你的方法试了,我怎么就没出现你这样的情况?我也用的是AfxMessageBox()即使AfxMessageBox关闭以后,弹出的对话框还是模态对话框,不能操作主dialog
[/Quote]

奇怪,,,
如果在CTestDlg类的OnInitDialog()里面再弹出一个其他的模式对话框呢?
jackson35296 2008-06-16
  • 打赏
  • 举报
回复
我用你的方法试了,我怎么就没出现你这样的情况?我也用的是AfxMessageBox()即使AfxMessageBox关闭以后,弹出的对话框还是模态对话框,不能操作主dialog
长尾巴的悟空 2008-06-16
  • 打赏
  • 举报
回复
非模态自己create非模态domodal
wuqiangu 2008-06-16
  • 打赏
  • 举报
回复
为什么会出现这种情况?
wuqiangu 2008-06-16
  • 打赏
  • 举报
回复
没其他人知道?
wuqiangu 2008-06-16
  • 打赏
  • 举报
回复
up
wuqiangu 2008-06-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cnzdgs 的回复:]
用MessageBox("asdf");
[/Quote]
嗯,如果只有AfxMessageBox(),改成MessageBox好像OK....为什么?

但是,我的CTestDlg 初始化OnInitDialog()时还调用别人写的函数,这个函数里面还有个小的模式对话框COtherDlg。
COtherDlg弹出在关闭后,CTestDlg对话框还是成为非模式的。
cnzdgs 2008-06-13
  • 打赏
  • 举报
回复
用MessageBox("asdf");
lipan37629146 2008-06-13
  • 打赏
  • 举报
回复
不会吧,不太可能出现的情况
; *程序说明* ;=============================================================================================== ; ; ; 对话框是由线条和矩形组合而成,标准windows对话框一共使用了5种颜色,分别是: ; #D4D0C8,#0E296E,#FFFFFF,#808080,#404040.其中#D4D0C8是对话框主体颜色, ; #0E296E是标题栏颜色,其他三种颜色是对话框边框使用的颜色,对话框边框主要用于营 ; 造对话框立体效果. ; ; 本程序由于使用的是640*480*16色显示模式,无法取到标准windows程序所需要的5种 ; 颜色,所以使用相近的颜色进行替换. ; ; 我在网上找了好久关于640*480*16色模式的相关资料,最终还是没有找到详细的资料. ; 自己写了一个画点函数(程序中的DrawPointb),但是使用这个函数画矩形时有点问题,当颜色 ; 号是奇数时正常,如果颜色号是偶数时,矩形将不能正确显示.本程序中使用的画点函数是在网 ; 上找的,不过这个函数也有一点问题,就是速度常慢,如果画点去添满整个屏幕,将使用好长的 ; 时间.所以程序中的大背景是用我理解的那种方法画的,其他的都使用DrawPoint函数.如果谁 ; 有比较详细的640*480*16色显示模式的相关资料,不要忘了告诉我. ; ; 汉字显示和用C语言显示的方式有点区别,因为在实模式下每个段最大容量是64K,而字库 ; 文件有一百多K,所以不能一次将字库文件读入,我使用的方法是把字库文件打开,然后每显示 ; 一个汉字,移动一次指针,将指针移动到响应的点阵然后读取一个字的点阵信息到内存,直到字符 ; 串显示完毕. ; ; 如果程序要在裸机下运行,则需要将要显示的汉字的点阵信息从字库中提取出来.显示汉字 ; 的子程序也要做相应的修改. ; ; 由于时间不是很宽裕,基本上没有写注释,各个函数的作用: ; ; 1.ConfirmTCan(按钮由确定状态变为取消状态) ; 2.CanTConfirm(按钮由取消状态变为确定状态) ; 3.ShowHanZi(显示汉字子程序) ; 4.DrawDialog(显示对话框子程序) ; 5.DrawButtonNoSelected(画一个未选中状态的按钮) ; 6.DrawButtonOnSelected(画一个选中状态的按钮) ; 7.DrawRect(画矩形子程序) ; 8.DrawPoint(画点子程序) ; ; ************Tab键或者方向键控制按钮焦点变换****************************** ; ; e-mail:westdatas@163.com OICQ:19820914 ; Nirvana 2006.8.1 ;==============================================================================================
前言 1. 什么是 TortoiseSVN? 2. TortoiseSVN 的特性 3. 许可协议 4. 开发 4.1. TortoiseSVN 的历史 4.2. 致谢 5. 阅读指南 6. 本文使用的术语 1. 开始 1.1. 安装 TortoiseSVN 1.1.1. 系统要求 1.1.2. 安装 1.2. 基本概念 1.3. 开始试用 1.3.1. 创建版本库 1.3.2. 导入项目 1.3.3. 检出工作副本 1.3.4. 进行修改 1.3.5. 添加更多的文件 1.3.6. 查看项目历史 1.3.7. 撤消更改 1.4. 继续前进 ... 2. 基本版本控制概念 2.1. 版本库 2.2. 版本模型 2.2.1. 文件共享的问题 2.2.2. 锁定-修改-解锁 方案 2.2.3. 复制-修改-合并 方案 2.2.4. Subversion 怎么做? 2.3. Subversion 实战 2.3.1. 工作副本 2.3.2. 版本库的 URL 2.3.3. 修订版本 2.3.4. 工作副本怎样跟踪版本库 2.4. 摘要 3. 版本库 3.1. 创建版本库 3.1.1. 使用命令行工具创建版本库 3.1.2. 使用 TortoiseSVN 创建版本库 3.1.3. 本地访问版本库 3.1.4. 访问网络共享磁盘上的版本库 3.1.5. 版本库布局 3.2. 版本库备份 3.3. 服务器端钩子脚本 3.4. 检出链接 3.5. 访问版本库 4. 日常使用指南 4.1. 基本特性 4.1.1. 图标重载 4.1.2. 右键菜单 4.1.3. 拖放 4.1.4. 常用快捷方式 4.1.5. 认证 4.1.6. 最大化窗口 4.2. 导入数据到版本库 4.2.1. 导入 4.2.2. 导入适当的位置 4.2.3. 专用文件 4.3. 检出工作副本 4.3.1. 检出深度 4.4. 将你的修改提交到版本库 4.4.1. 提交对话框 4.4.2. 修改列表 4.4.3. 从提交列表中排除项目 4.4.4. 提交日志信息 4.4.5. 提交进程 4.5. 用来自别人的修改更新你的工作副本 4.6. 解决冲突 4.6.1. 文件冲突 4.6.2. 属性冲突 4.6.3. 树冲突 4.6.3.1. 本地删除,当更新时有更改进入 4.6.3.2. 本地更改,当更新时有删除进入 4.6.3.3. 本地删除,当更新时有删除进入 4.6.3.4. 本地缺少,当合并时有更改进入 4.6.3.5. 本地更改,当合并时有删除进入 4.6.3.6. 本地删除,当合并时有删除进入 4.6.3.7. 其它树冲突 4.7. 获得状态信息 4.7.1. 图标重载 4.7.2. 详细状态 4.7.3. 在 Windows 资源管理器中的 TortoiseSVN 列 4.7.4. 本地与远程状态 4.7.5. 查看差别 4.8. 修改列表 4.9. 版本日志对话框 4.9.1. 调用版本日志对话框 4.9.2. 版本日志动作 4.9.3. 获得更多信息 4.9.4. 获取更多的日志信息 4.9.5. 当前工作副本的版本 4.9.6. 合并跟踪特性 4.9.7. 修改日志消息和作者 4.9.8. 过滤日志信息 4.9.9. 统计信息 4.9.9.1. 统计页 4.9.9.2. 作者提交次数统计页 4.9.9.3. 按日期提交统计页 4.9.10. 离线方式 4.9.11. 刷新视图 4.10. 查看差异 4.10.1. 文件差异 4.10.2. 行结束符和空白选项 4.10.3. 比较文件夹 4.10.4. 使用 TortoiseIDiff 进行比较的图像 4.10.5. Diffing Office Documents 4.10.6. 其他的比较/合并工具 4.11. 添加新文件和目录 4.12. 复制/移动/重命名文件和文件夹 4.13. 忽略文件和目录 4.13.1. 忽略列表中的模式匹配 4.14. 删除、移动和改名 4.14.1. 正在删除文件/文件夹 4.14.2. 移动文件和文件夹 4.14.3. 处理文件名称大小写冲突 4.14.4. 修复文件改名 4.14.5. 删除未版本控制的文件 4.15. 撤消更改 4.16. 清理 4.17. 项目设置 4.17.1. Subversion 属性 4.17.1.1. svn:keywords 4.17.1.2. 增加和编辑属性 4.17.1.3. 导出和导入属性 4.17.1.4. 二进制属性 4.17.1.5. 自动属性设置 4.17.2. TortoiseSVN 项目属性 4.17.3. 属性编辑器 4.17.3.1. 外部条目 4.17.3.2. SVN 关键字 4.17.3.3. EOL 样式 4.1

16,472

社区成员

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

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

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