zoukankan      html  css  js  c++  java
  • MFC 对话框不显示,返回-1 原因

    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

  • 相关阅读:
    C# 对Excel文档打印时的页面设置
    C# 对Excel 单元格格式, 及行高、 列宽、 单元格边框线、 冻结设置
    object does not contain a definition for get_range
    shell变一些小技巧
    Codeforces Round #277.5 (Div. 2)A——SwapSort
    ActiveMQ与RabbitMQ采用camel综合
    SAP ABAP规划 使用LOOP READ TABLE该方法取代双LOOP内部表的方法
    Object-c中间initialize 与 辛格尔顿
    队列——阵列实现
    左右GNU Linux企业加密文件系统 eCryptfs简介
  • 原文地址:https://www.cnblogs.com/youxin/p/10695009.html
Copyright © 2011-2022 走看看