游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3021|回复: 3

求助:OGRE和MFC对话框问题

[复制链接]

3

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2008-9-18 11:01:00 | 显示全部楼层 |阅读模式
我将OGRE和MFC结合使用,发现一旦调用MFC的帮助对话框就程序像死锁一般不再受控制,要End Debug才可以。
然后我又在程序添加一个菜单,作用是弹出一个MessageBox,不过也像上述情况一样。
我用的是vc2005,问题严重,万分困惑,希望各位可以帮忙帮忙,谢谢。

2

主题

683

帖子

687

积分

高级会员

Rank: 4

积分
687
发表于 2008-9-18 17:20:00 | 显示全部楼层

Re:求助:OGRE和MFC对话框问题

是线程和消息循环问题

3

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2008-9-19 15:11:00 | 显示全部楼层

Re:求助:OGRE和MFC对话框问题

我想请问究竟具体问题是什么呢?有解决方法吗?
我刚刚发现只要按一下ALT键,对话框就又会出现了,不明白究竟是为什么?

3

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2008-9-21 16:51:00 | 显示全部楼层

解决

上网查阅资料后,终于自己解决了,原来是我重载了OnPaint函数不过又没有做适当的处理,所以令程序以为是OnPaint绘画没有结束,因此导致消息不能响应。
其实一般是不用重载OnPaint函数的,我是因为使用了网上程序段才出现这种状况。
如果一定要重载,建议在OnPaint函数结束前(必须如此,否则之后的代码将不执行)加上这三句话:
        CPaintDC dc(this);  //调用OnBeginPrinting和OnEndPrinting,使得OnPaint的消息得以响应
        OnPrepareDC(&dc);
        OnDraw(&dc);           //重载OnPaint是不会调用OnDraw的,所以要强制调用调用了OnDraw
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 07:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表