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的,需要手动删除

参考:

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

原文地址:https://www.cnblogs.com/youxin/p/10695009.html

时间: 2024-10-08 21:54:21

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

MFC对话框中显示背景图片

在MFC对话框中显示图片,四个步骤. 1.首先得在VC6.0或者VS2008(其他版本也是一样)中导入GDI文件.(网上下载:) GDI含义是图形设备接口,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出. 分别将include文件夹和lib中的头文件全部添加到你的开发环境中的include或lib文件夹中.如:F:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include. 将gdiplus.dll导入

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

非模态对话框的创建及显示 上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--非模态对话框的创建及显示. 已经说过,非模态对话框显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互切换.鸡啄米会将上一讲中创建的Tip模态对话框改为非模态对话框,让大家看下效果. 非模态对话框的对话框资源和对话框类 实际上,模态对话框和非模态对话框在创建对话框资源和生成对话框类上是没有区别的,所以上一讲中创建的IDD_TIP_DIALOG对话框资源和CTipDlg类都不需要修改. 创建及显示非模态

MFC对话框显示BMP图片

1.MFC对话框显示BMP图片我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一个基于对话框的工程,名为Ttest. 对话框类为CTestDlg (一)    非动态载入图片. 方法1.先从最简单的开始,用picture 控件来实现. 步骤: 先在资源里Import一张图片,ID为IDB_BITMAP2 然后在对话框上添加一个picture控件,右键点

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

一般属性页对话框的创建及显示 本节将介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的.鸡啄米将上一节中的向导对话框进行少量修改,使其成为一般属性页对话框. 一般属性页对话框的创建步骤: 1.创建属性页对话框资源 属性页对话框资源的创建方法同向导对话框是一样的,上一讲中的对话框资源不需进行任何修改. 2.创建属性页类 属性页类的创建和向导对话框的属性页类也基本一样,只是一般属性页对话框中不需要“下一步”和“完成”等按钮,所以上一讲中属性页类的OnS

【转】MFC对话框和控件

原文网址:http://www.cnblogs.com/tiwlin/archive/2013/05/08/3067966.html 对话框和控件 对话框是Windows应用程序中一种常用的资源,其主要功能是输出信息和接收用户的输入数据.控件是嵌入在对话框中或其它父窗口中的一个特殊的小窗口,它用于完成不同的输入.输出功能.对话框与控件关系密切,在每个对话框上一般都有一些控件,对话框依靠这些控件与用户进行信息的交互. 在MFC中,对话框的功能被封装在CDialog类中,而CDialog类是CWnd

11.MFC对话框

一.MFC对话框 1.对话框的分类 模式和非模式 2.相关类 CDialog类 - 父类CWnd类 CCommonDialog - 父类是CDialog类,称为通用对话框类,包括颜色对话框.文件对话框.字体对话框. 查找对话框.页面设置对话框.打印对话框. CPropertyPage类 - 父类是CDialog类,称为属性页对话框. 3.CDialog类的使用类 3.1 创建基于模式对话框的应用程序 (1)添加对话框资源,与对话框类关联 (2)在应用程序类的InitInstance函数中创建和显

MFC——对话框(一)

创建对话框主要分两大步: 1.创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件: 2.生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等. 一.对话框类的数据交换和检验 在程序运行界面中,用户往往会改变控件的属性,例如,在编辑框中输入字符串,或者改变组合框的选中项,又或者改变复选框的选中状态等.控件的属性改变后MFC会相应的修改控件关联变量的值.这种同步的改变是通过MFC对话框类自动生成的成员函数DoDataExchange()来实现的,这也叫

MFC对话框

MFC的对话框 1 相关类 CDialog类-父类是CWnd,本质上也是一个窗口.是对话框类的顶层父类. CCommonDialog类-父类是CDialog类.称为通用对话框.MFC提供了6个通用对话框类,都是CCommonDialog类的子类, 包括: 文件对话框.颜色对话框.字体对话框.查找替换对话框.打印对话框和打印设置对话框. CPropertyPage-父类是CDialog类,属性页对话框. 2 分类 模式对话框和非模式对话框 3 使用MFC的类创建基于模式对话框的应用程序 3.1 插

C++MFC编程笔记day08 MFC对话框的使用

一 MFC对话框 1 分类 模式和非模式 2 相关类 CDialog类-父类是CWnd,本质上是一个窗口,对话框类的父类. CCommonDialog类以及子类-通用对话框,颜色对话框.文件对话框. 查找替换对话框.字体设置对话框.打印设置对话框和 打印对话框. CPropertyPage类-属性页对话框. 3 在Win32向导中,使用MFC的类创建对话框程序 3.1 模式对话框 3.1.1 创建和显示对话框 CDialog::DoModal() 3.1.2 对话框的关闭(无需用户处理) CDi