转自:http://hi.baidu.com/samzyn/blog/item/b712739b6f7e56b2c9eaf417.html DoModal失败原因 通常对话框不显示的原因有 1 父窗口HWND无效 2 在ONINITDIALOG里用了ENDDIALOG 3 无效的对话框资源ID 4 使用没有注册的的自定义控件 5 对话框的某些控件创建失败,如RICHEDIT,要加上AfxInitRichEdit(); 最有可能出现的是第3条,因此,又经过仔细分析了对话框中的各个资源的ID,终于找到了问题,原来是出在一个菜单栏的ID上面, 在对话框的属性的菜单栏中有一个ID(因为这个对话框是复制过来的,而且原来的对话框有菜单栏的,但是现在这个对话框没有),所以呢,ID虽然存在,但 是,现在的程序中并没有对应的资源,所以,通过讲菜单栏那项设置为空,这样,程序就OK了。 使用: Bob的问题,发现从EVC的WCE移植到VS2005下的Mobile,老会出问题,就是上面说的DoModal()返回-1,同样分析了上面的5个原因,最有可能的就是第三点,不过找了半天还是没找到问题,实在没辙,感觉对话框的边框有问题,所以就尝试着去将Border原先的"Dialog Frame"改为了"None,即不会有又上角的关闭按钮,结果果真就可以了。
如果有问题及建议,欢迎关注微信公众号: |