【问题标题】:Dialog displayed black in VS2015VS2015对话框显示为黑色
【发布时间】:2015-11-16 08:17:54
【问题描述】:

最近我将我的 VS2010 解决方案升级到 VS2015。在编码并编译它没有错误后,我尝试查看.rc - 主对话框。这里的问题是,该对话框完全显示为黑色,而没有显示控件。单击周围(或在黑色虚无中使用 TAB ,表明我能够访问对话框控件。我还有一个没有任何控件的对话框。可以在没有“错误”的情况下访问.

这是一个实际的错误还是有其他问题?从我的角度来看,可能是控件导致了这种情况,尽管我在 .rc 文件中没有发现可疑之处。
如果您需要更多信息,请发表评论。


编辑:

我现在尝试再次编译它,它现在 DoModal 返回 -1。

无法创建对话框

对话框现在不再显示。


【问题讨论】:

  • 可能是 VS2015 的渲染问题,是基于 DLGTEMPLATEEX 的对话框吗?
  • @MarcoA。我还没听说过,有什么方法可以检查一下吗?找到了这个DLGTEMPLATEEX,但我不太明白。
  • 我想到了另一个想法:你能试着把那个“黑色区域”移开吗?它可能是无法呈现的图像控件。选择后尝试删除(Del键)
  • @MarcoA。应用程序中没有图像控制。组合框、编辑控件、SpinControl、ListControl 和按钮。即使调整应用程序的大小也不会改变任何东西。我还尝试删除 .suo 选项文件。 - 我现在尝试用 VS2013 打开它,结果相同。
  • @MarcoA。再次编译后,对话框不再显示...DoModal 返回-1。更新的问题。

标签: c++ mfc visual-studio-2015


【解决方案1】:

我已经在虚拟机(Windows Server 2008 R2)上安装了 VS2015,并且对话框完美呈现。

由于某种原因,它无法在 Windows 8.1 PC 上正确呈现。在更改了.rc 文件中的各种更改并进行了测试后,我创建了一些对话框(还将黑色对话框中的所有项目粘贴到新的Ctrl+A复制和粘贴),比较了标志,并更改了每一个。

关于DoModal 返回-1,似乎Style 标志在经过一些更改后设置错误,我的错误我没有注意到。将其从 Child 改回 Popup 解决了这个明显的问题。

至于渲染未正确完成(黑色对话框),它似乎是属性 Layered。在将其从 True 设置为 False 后,它会立即正确呈现,将其更改回 True 不会再出现问题。

如果这种罕见的情况再次发生,希望这对某人有所帮助。


比较两个.rc 文件后,Visual Studio 已在版本块下方添加:

/////////////////////////////////////////////////////////////////////////////
//
// AFX_DIALOG_LAYOUT
//

IDD_MYBROKEN_DIALOG AFX_DIALOG_LAYOUT
BEGIN
    0
END

【讨论】:

    猜你喜欢
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多