MFC 对话框不显示,返回-1 缘由

 

DoModal失败缘由算法

一、MFC数据结构

一般对话框不显示的缘由有架构

1 父窗口HWND无效函数

2 在ONINITDIALOG里用了ENDDIALOG性能

3 无效的对话框资源ID测试

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

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

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

 

 

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


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

相关文章
相关标签/搜索