繁体   English   中英

仅在Vista上的儿童窗口绘画问题

[英]Child Window painting problem on Vista only

我有一个基于对话框的MFC C ++应用程序。 我的对话框显示许多“页面”(类似于选项卡页面或属性对话框)。

我通过在父级客户区顶部上方显示一个“子级”窗口来显示每个“页面”。 在Vista上运行良好,直到我随后在孩子的顶部打开另一个窗口。

然后,Vista似乎在我的父对话框中绘制了一个白色的矩形粗框,该对话框在“页面”子窗口的顶部绘制。 如果将另一个窗口移到此白色矩形的顶部,它将重新绘制遮盖的区域就好。

有人可以告诉我发生了什么吗? Vista是否试图使用不正确的坐标来清除我的非客户(框架)区域?

我的父对话框是从CDialog派生的皮肤类,该类处理我自己的窗口标题栏和框架的绘制。 我发现如果不在自己的OnNcActivate()方法中调用CDialog :: OnNcActivate(),则不会显示白色矩形。 当然,如果执行此操作,则无法使用子窗口。.但是OnNcActivate似乎与问题有关。

我已经解决了问题。.我不应该调用CDialog :: OnNcActivate()-我应该只是返回TRUE。 现在一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM