【发布时间】:2016-04-26 10:48:27
【问题描述】:
我的对话框上有这个STATIC文本控件:
现在,我知道我可以将控件重命名为 IDC_STATIC_STYLE 之类的名称,然后我可以将其映射到 CStatic 对象并以这种方式禁用/启用,或者我可以将 CWnd::GetDlgCtrlID 与它进行比较走那条路。
我的问题是我正在查看是否可以避免重命名控件(因此不会影响我的资源 DLL 文件中的现有翻译)。有没有其他方法可以找到这个特定的控件?我注意到在 IDE 中有一个灰色的 (Name) 条目,上面写着 IDC_STATIC51。
如果必须的话,我会重命名它,但如果我按原样使用它,我都很感兴趣!
谢谢!
【问题讨论】:
-
在资源文件中识别该控件的唯一方法是在声明它的对话框资源中。默认情况下,所有静态控件的 ID 为
IDC_STATIC,#defined 为 -1。它不是唯一的,因此您无法为该控件提供其原始定义之外的唯一标题。因此,您可以为控件提供一个新的自定义 ID,而不会影响您的翻译。正如 xMRi 所建议的,Z 顺序会起作用,但它有点脆弱。 (另请注意,如果设置了“简单”样式,则静态控件在禁用时不会有任何不同的绘制。) -
使用 appTranslator 您不需要将任何 IDC_STATIC 对象具体命名为特定名称。感谢您的意见。
标签: mfc dialog visual-studio-2015