【发布时间】:2016-01-02 15:48:33
【问题描述】:
我正在开发一个产品更新,它将一些旧的 C++/MFC 代码与 C#/WPF 相结合。它使用 Visual Studio 2013,更新 5。我正在尝试修改一个现有的 MFC 对话框。使用编辑器移动元素(资源视图->对话框,按 ID 选择)效果很好。更改 LTEXT 值在对话框编辑器上正确显示(您认为所见即所得),更改正确显示在 .rc 文件中(查看但未使用记事本编辑),但构建的应用程序显示重新排列的元素与旧标签。我什至设置了一个干净的构建机器以确保没有一些奇怪的中间文件,但不,它只是不想更改这些标签。我不知道下一步该往哪里看。
这些标签没有什么异国情调,这里有一个简短的示例:
IDD_MY_DLG DIALOGEX 0, 0, 650, 375
STYLE DS_SETFONT | WS_CHILD
FONT 8, "Microsoft Sans Serif", 400, 0, 0x0
BEGIN
LTEXT "SE Limit",IDC_ISE_LIM_STATIC,457,82,59,8,0,WS_EX_RIGHT
LTEXT "NE Limit",IDC_INE_LIM_STATIC,457,112,59,8,0,WS_EX_RIGHT
END
旧标签的末尾有一个冒号,这就是我对它们进行的所有更改,但冒号不会消失。
【问题讨论】:
-
你有不同语言的重复对话框吗?如果是这样,你把它们都改了吗?我的第一个想法是“重建解决方案”,因为有时 VS 不会“看到” .rc 文件已更改,因此不会重新编译它。尝试构建/清理解决方案,然后进行构建。还要检查重复的二进制文件 - 特别是如果这是一个 OCX 或其他东西。
-
试试这个:退出 Visual Studio,删除与资源文件关联的 .aps 和 .res 文件。重建。
-
非常感谢你们的关注。我已经删除了.aps,我已经完成了清理,两者都一起。这些冒号一定来自某个地方,所以我在项目中搜索它们。我发现一些代码覆盖了 .rc 文件中设置的内容。嗬!之前在这个项目中发现过类似的(继承的),没想到去看看。
标签: visual-studio-2013 mfc resources rc