gpt4 book ai didi

c++ - 仅在 Vista 上的子窗口绘画问题

转载 作者:行者123 更新时间:2023-11-28 08:22:07 25 4
gpt4 key购买 nike

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

我通过在父级客户区的顶部显示一个子窗口来显示每个“页面”。这在 Vista 上工作正常,直到我在 child 上方打开另一个窗口。

然后 Vista 似乎在我的父对话框中绘制了一个厚实的白色矩形框,它绘制在我的“页面”子窗口的顶部。如果我将另一个窗口移到这个白色矩形的顶部,它会重新绘制被遮挡的区域。

谁能告诉我这是怎么回事? Vista 是否尝试使用不正确的坐标清除我的非客户(框架)区域?

我的父对话框是一个派生自 CDialog 的蒙皮类,它处理我自己的窗口标题栏和框架的绘制。我发现,如果我不在自己的 OnNcActivate() 方法中调用 CDialog::OnNcActivate(),则不会出现白色矩形。当然,如果我这样做,那么我将无法使用我的子窗口。但是 OnNcActivate 似乎与该问题有关。

最佳答案

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

关于c++ - 仅在 Vista 上的子窗口绘画问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5428093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com