2011-04-15 74 views
5

期间是窗口标题黑色和按钮无框有时在调试时我的Win32应用程序窗口和对话框有时(很少)不会出现在所选择的Windows方案,而是降低或破坏:为什么调试

enter image description here

窗口标题全是黑色(而不是蓝色或银色),没有任何阴影。按钮没有任何按钮形状(屏幕截图中的“Abbrechen”)。下半部分的黑条是一个窗口进度条。发生这种情况时并没有显示任何进展。

屏幕截图(中心细节灰色)取自64位应用程序,在XP SP3 x64和10 GB计算机上的Visual Studio 2010下调试。这是足够的RAM(一些GB)备用。

有没有人有理由的线索?我从来没有做非客户区绘图或其他东西。

编辑:症状只发生在Visual Studio调试器已附加到该程序。但即使应用程序从调试器中分离出来,问题仍然存在。它不会在没有调试的情况下启动程序时发生。

+0

这是一个C#或C++应用程序吗? – 2011-05-04 21:20:22

+0

这是一个Win32非托管C++应用程序。 – 2011-05-05 09:09:57

+0

在调试过程中,我从来没有在MFC应用程序中看到类似这样的黑色区域,特别是在非客户区域(标题为“waugs wird gelesen”的部分)。该部分通常由Windows本身渲染,而不是MFC或代码。这就是为什么我想知道你是否在使用一些“花哨”的主题。 – 2011-05-05 14:10:28

回答

0

您是否为Visual Studio 2010安装了SP1?我还没有遇到这个问题,但是知道SP1修复了VS2010中的很多问题。

我知道的另一件事是WinXP x64(它仍然是sp2而不是3 btw)并不总是很好玩。它不如x86版本那样受到支持。 Win Vista和7 x64允许更平滑的操作。 (我自己有一些XP x64的不好的经历)

1

至少有两种可能性。

  1. 您使用一些其他的“主题引擎”比XP本地,例如Clearlooks等,这些发动机可能并不总是符合所有的事情想调试器,他们可能会离开自己的消息泵未泵送一些隐含地假定(在调试器中)点,然后绘图停止。在Windows上使用某些虚拟桌面管理器时经常会发生同样的事情,Windows窗口管理器太简单了。

  2. 甚至32位窗口中的32位程序可能用完了句柄,这通常会导致窗口开始显示“Fixedsys “字体。您的应用程序仅显示主题处理部分的症状,这种类型再次表示可能性为nr.1。

尝试使用WinSpy和Process Explorer检查相关窗口,不合理的分配资源量可能暗示发生了什么样的饥饿。

0

我们遇到这种麻烦。事实上,这是由于我们的antivurus(不知道,但我认为它是目前的McAfee Viruscan)。

0

要实施的视觉样式在你的应用程序请确保调用它,你运行你的窗口前,像这样:

static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.Run(new Form1()); 
} 

我已经使用使用第三方组件特别是当同样的问题以前也发生过,他们自己的造型方法,如Infragistics或ComponentOne

0

我读了关于这种症状(前段时间),所以我再次搜索它,发现论坛。 WinXP-64上的某些NVIDIA驱动程序似乎存在问题。也有些人可以通过减少硬件加速来解决问题。

你可以自己阅读以下论坛(5页),并决定它是否适用于你的情况。

http://forums.nvidia.com/index.php?showtopic=67608