码迷,mamicode.com
首页 > 编程语言 > 详细

MFC 对话框不显示,返回-1 原因

时间:2019-04-12 11:52:05      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:.net   ini   自定义   更改   details   color   define   新建   显示   

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

MFC 对话框不显示,返回-1 原因

标签:.net   ini   自定义   更改   details   color   define   新建   显示   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!