gpt4 book ai didi

windows - resource.h 文件中的 IDC_STATIC 是什么意思?

转载 作者:可可西里 更新时间:2023-11-01 13:42:20 25 4
gpt4 key购买 nike

我有一个由 VS 2012 生成的简单 Win32 项目。在 resource.h 文件中,我看到了这个:

#ifndef IDC_STATIC
#define IDC_STATIC -1
#endif

我发现它在 resource.rc 文件中的几个地方被引用。但我不明白这是什么意思。我也没有在网上找到有关它的引用资料。有什么想法吗?

最佳答案

通过调用 CreateWindowEx 创建子控件时,您必须分配一个控件 ID(通过重载的 hMenu 参数)。控件 ID 稍后可用于引用控件,而无需存储动态创建的 HWND(例如,调用 GetDlgItemGetDlgItemInt 时)。

有些控件很少需要在代码中标识。一个突出的例子是 Static Control 1,如果在资源脚本中定义,通常不需要在代码中引用。您(或对话框管理器)在创建控件时仍然需要传递一个控件 ID,即使您以后不使用它也是如此。对于这些控件,您可以传递 IDC_STATIC 控件 ID,该 ID 在向导生成的 Resource.h 文件2 .


1 其他示例包括 Icon Control (具有 SS_ICON 样式的静态控件),Line Control (具有 SS_ETCHEDHORZSS_SUNKEN 样式的静态控件),或 GroupBox Control .

2 这不是 Windows API3 的约定。这完全是由用户代码做出的决定。您可以使用另一个 ID 值,或者如果您愿意,根本不定义 IDC_STATIC,并在 LTEXT control statement 中使用整数文字改为:LTEXT "Filename", -1, 10, 10, 100, 100

3 授予,SDK header winres.h 确实将预处理器符号 IDC_STATIC 定义为(-1),所以如果您确实在代码中定义了它,请确保分配相同的值以避免混淆。

关于windows - resource.h 文件中的 IDC_STATIC 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37913963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com