非常奇怪的现象

发布于 2022-08-01 15:56:51 字数 199 浏览 5 评论 2

我试图弹出一个对话框
1.立了一个对话框资源的模板
2.双击模板建立对应的类
3.包含头文件
4,弹出对话框,代码如下:
CAddTypeDlg dlg;
dlg.DoModal();
但是,却无法弹出对话框?
其他的对话框都可以,但就是这个对话框弹不出来,
是vc的毛病?还是其他什么呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哑剧 2022-08-12 12:10:18

这里的人怎么这么少,失望哪!还是我自己把答案找到了。

梦萦几度 2022-08-12 10:01:09

richEdit控件导致对话框无法显示问题的解决
郁闷,我试图弹出一个对话框,步骤如下:
1.建立了一个对话框资源的模板
2.双击模板建立对应的类
3.包含头文件
4,弹出对话框,代码如下:
CAddTypeDlg dlg;
dlg.DoModal();
但是,却无法弹出对话框?
其他的对话框都可以,但就是这个对话框弹不出来,
是vc的毛病?还是其他什么呢?
后来才发现,是添加了richEdit的问题,去掉就行了,但是不是解决方法,于是网上搜了一下,还真有:参考如下资料:

http://jkflyfox.spaces.live.com/ ... f997ba5f!1371.entry
这个问题是同事遇到的,比较有趣的现象:就是他有一个MFC的对话框应用程序,添加了一个RichEdit控件后就不能正常显示了,现象就是点生成的可执行程序,没有反应。我上网查阅了下,网上的说法是程序还没有准备好RichEdit的编辑,就是还没有为这个控件做好准备,解决办法是手动添加做准备语句,在应用程序类的InitInstance函数体内添加以下语句:
        AfxInitRichEdit():
这样就好了,真是奇怪。
最后看到了MS的解释,属于官方的东西,比较正式,帖在这里。
    If you are using a rich edit control in a dialog box (regardless whether your application is SDI, MDI, or dialog-based), you must call AfxInitRichEdit once before the dialog box is displayed. A typical place to call this function is in your program’s InitInstance member function. You do not need to call it for each time you display the dialog box, only the first time. You do not have to call AfxInitRichEdit if you are working with CRichEditView.
     不过到底是为什么会这样,还是不明白,也不知道MFC内部是如何处理的,不过知道怎么做就是了。
http://topic.csdn.net/t/20031015/11/2357293.html
在CxxxApp::InitInstance()中添加代码   
  AfxInitRichEdit();   
在app的InitInstance中加入AfxRichEditInit()初始化richedit空间
初始化通用控件即可,InitCommonControlsEx或InitCommonControls皆可

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文