DoModal失败原因

1、MFC

通常对话框不显示的原因有

1 父窗口HWND无效

2 在ONINITDIALOG里用了ENDDIALOG

3 无效的对话框资源ID

4 使用没有注册的的自定义控件

5 对话框的某些控件创建失败,如RICHEDIT,要加上AfxInitRichEdit(); (我就是这个原因,加了richedit控件,没有调用这个函数

最有可能出现的是第3条,因此,又经过仔细分析了对话框中的各个资源的ID,终于找到了问题,原来是出在一个菜单栏的ID上面, 在对话框的属性的菜单栏中有一个ID(因为这个对话框是复制过来的,而且原来的对话框有菜单栏的,但是现在这个对话框没有),所以呢,ID虽然存在,但 是,现在的程序中并没有对应的资源,所以,通过讲菜单栏那项设置为空,这样,程序就OK了。

writeFlash依赖于ResZH,在这个已有有工程里面,新建了一个窗口,调用:

int nResponse = dlg.DoModal();后发现返回为-1,
不能弹出显示对话框,后来核对了一下resource.h,本工程里面有两个,对于同一个宏
#define IDD_LOGIN_DIALOG                178
#define IDD_LOGIN_DIALOG                177
两个值不一致。改为一致就可以了。
 
(MFC 资源管理器删除控件是不会更改resource.h的,需要手动删除
 
RichEdit是开发中经常使用到的控件,其版本自1.0起,历经好几年,好几次的更新, 
RichEdit 1.0 功能

基本非Unicode编辑、 剪切/复制/粘贴文件流
    字符/段落格式属性的基本集
    基于消息的接口加OLE接口:IRichEditOle和IRichEditOleCallback
    垂直文本和输入法支持 (仅适用于FE生成)。
    所见即所得的编辑使用打印机标准
    不同版本不同的脚本
    常用控件通知再加上一些新的
    纯文本和rtf格式文件
    为Windows画笔的使用启用笔和理解的手势

RichEdit 2.0 添加

Unicode内部+能够读写使用代码页
    国际线断算法
    向上/向下查找。麦哲伦鼠标支持。
    多级撤消
    双向(2.1版)和FE支持包括水平的2/3输入法,双字体、键盘链接、智能字体应用
    自动超链接识别。Word用户界面
    简单的/丰富的、 单行/多行、 可扩展的架构
    密码和加速器控制选项
    无窗口接口(ITextHost/ITextServices)
    更好地显示(混合的字体使用离屏位图)、系统选择颜色、透明度的支持
    TOM(文本对象模型)双重接口
    字符格式增加包括背景颜色,区域设置 ID,下划线类型,上标/下标。
    段落格式设置增加包括前/后的间距、 行间距。
    来回所有Word格式字体/段落属性对话框
    大量的代码稳定,测试,性能提高

 

在MFC中使用RichEdit2,须先调用::AfxInitRichEdit();初始化RichEdit2控件。

可以在xxxApp::InitInstance()应用初始化时加载调用::AfxInitRichEdit2()函数!!!

MFC 万能的类向导

在项目上点右键【类向导】

参考:

https://blog.csdn.net/bookish_2010_prj/article/details/5535757

MFC 对话框不显示,返回-1 原因的更多相关文章

  1. MFC对话框中显示BMP,JPG图片

    //************************************ // 方法说明:    显示JPG和GIF.BMP图片 // 参数说明:    CDC * pDC           设 ...

  2. MFC对话框中显示背景图片

    在MFC对话框中显示图片,四个步骤. 1.首先得在VC6.0或者VS2008(其他版本也是一样)中导入GDI文件.(网上下载:) GDI含义是图形设备接口,主要任务是负责系统与绘图程序之间的信息交换, ...

  3. VS2010/MFC对话框:非模态对话框的创建及显示

    非模态对话框的创建及显示 上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--非模态对话框的创建及显示. 已经说过,非模态对话框显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互切 ...

  4. mfc对话框启动就直接隐藏在右下角显示托盘图标

    之前在网络上找了一份mfc对话框启动就直接隐藏窗体,在右下角显示托盘图标的demo 在win7下可以正常使用,但在win10上直接溢出,导致计算机跟注销似的崩溃现象. 后来找到原因是因为在OnInit ...

  5. 在c++MFC下用PCL显示操作点云文件 MFC对话框显示操作PCL点云

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/13115873.html 第一步 下载PCL库  我的版本是1.8.1的 你都要MFC下跑PCL ...

  6. MFC对话框显示BMP图片

    1.MFC对话框显示BMP图片我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) ...

  7. VS2010/MFC对话框:一般属性页对话框的创建及显示

    一般属性页对话框的创建及显示 本节将介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的.鸡啄米将上一节中的向导对话框进行少量修改,使其成为一般属性页对话 ...

  8. MFC对话框

    创建对话框步骤: 第一,创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件: 第二,生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等. 创建对话框类 ...

  9. [MFC] 对话框菜单项Menu选中打勾(单选,多选)

    近期需要实现一个功能:MFC对话框中,一项菜单下有五个菜单项,改变菜单项选中状态,每次只能选择其中一个打勾.(单选) 然后在网上搜了下资料,稍微总结下,以防后面用到. 1.单选实现: CMenu* m ...

随机推荐

  1. thinkPHP中M()和D()的区别

    在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会自动调用M方法.通俗一点说:M实例化参数是数据库的表名 ...

  2. ansible的plugins

    callback插件:路径 /usr/lib/python2.7/site-packages/ansible/plugins 回显输出型(stdout): stderr.py skippy.py se ...

  3. NumPy的思考……

    问题: 为什么第一次输出矩阵形式的数据,第二次输出list形式的数据? 详见代码: a = np.array([[1, 2], [3, 4]]) print(a) print('ndim :', a. ...

  4. JS浅谈原始值与引用值操作

    值的操作分为三大类:复制,传递,比较 一:复制 原始值 let a = 10; let b = a; 注释:2018-7-30 17:33:49 1 原始类型的值都是存放在栈内存当中,所以他们的赋值操 ...

  5. Mysql概念及基本操作

    1.Mysql 概念 1.1 定义 数据库本质是一个C/S的套接字软件 关系型数据库:MySQL mariadb db2 非关系型:存取数据是以key:Value mongodb redis 1.2 ...

  6. myeclipse 无法启动Tomcat(程序未设置断点)This kind of launch is configured to open the Debug perspective ...

    myeclipse 中在新建一个项目之后想要运行一下,可是却提示This kind of launch is configured to open the Debug perspective,下面是我 ...

  7. jmeter--接口自动化jmeter+ant+jenkins

    的 一.介绍 接口自动化工具:jmeter+ant+jenkins 流程: -1.jmeter已录制或手动设置好脚本后 -2.配置ant,使用Ant工具,进行批量执行jmeter的脚本 -3.使用Je ...

  8. 【循环数组的最大字串和】Maximal-sum Subsequence

    [循环数组的最大字串和]Maximal-sum Subsequence PROBLEM 题目描述 给一个 N×N 的矩阵 M,可以取连续的一段数(必须是横着或者竖着或者斜着,这个矩阵是循环的,具体如下 ...

  9. C++调用C语言的库函数

    在项目中,使用C语言编写了一个socket后台程序tkcofferd,并且为方便客户端的使用,提供了动态库,其中包含socket接口. 现在的需求是使用qt做一个前端界面,用来展示tkcofferd的 ...

  10. __x__(21)0907第四天__ css 盒模型 (框模型)

    CSS 处理元素,把每个元素都包含在一个盒子里. 对网页的布局,其实就是对盒子的摆放及设置.  边框border,会使盒子变大: .box{ border: 10px 20px 30px 40px r ...