【发布时间】:2013-02-11 15:13:58
【问题描述】:
我在使用 GDI+ 绘制应用程序的用户界面时遇到了一个奇怪的问题。有时会出现显示错误,显示其他应用程序的工件。有时我的文本控件的边框完全用黑色绘制。
在某些情况下,问题不仅仅是简单的显示错误。发生这种情况时,我的应用程序中嵌入了另一个应用程序的菜单或上下文菜单。此菜单不仅可见,您还可以通过将鼠标悬停在菜单条目上方并展开子菜单来突出显示菜单条目。但是,当您单击条目时,它们背后没有任何功能。这些菜单似乎始终是 Windows 资源管理器的一部分。
我不知道应该从哪里开始寻找这些问题的原因。也许这里的某人可以指出问题的可能根源,甚至是解决方案?
澄清:相同的代码在具有不同硬件、不同显卡驱动程序和不同操作系统(XP、Win7、Server 2008)的多台 PC 上显示此错误。我很想发布一些代码,但它非常复杂并且在整个应用程序中广泛传播。而且由于我不知道问题的根本原因是什么,因此我无法隔离代码的正确部分。
以下是一些截图:
我的文本控件和面板控件周围有黑色边框:
另一个应用程序的内容在我的应用程序窗口中绘制。您可以从左侧的 Windows 资源管理器中看到上下文菜单,在右侧看到 Excel 工作表的一部分。表格下部的网格表通常直接位于窗口标题栏下方: 在显示资源管理器上下文菜单的表单中显示错误:
【问题讨论】:
-
我们需要更多信息,拜托:相同的代码在许多不同的 PC 上存在相同的问题,还是只有一个?不同的代码在你的电脑上有同样的问题吗?您是否尝试过升级图形驱动程序?愿意给我们看一些代码吗?等
-
有时我的文本控件的边框完全是黑色的 你确定没有 GDI 句柄泄漏吗?
-
我修复了一些泄漏的 GDI 对象。但问题仍然存在。
标签: c++ winapi user-interface gdi+