c - "BUTTON"是普通控件吗?

标签 c winapi

INITCOMMONCONTROLSEX 结构 documentation提及以下内容:

ICC_STANDARD_CLASSES

Load one of the intrinsic User32 control classes. The user controls include button, edit, static, listbox, combobox, and scroll bar.

我不明白这是什么意思,“按钮、编辑、静态、列表框、组合框”是否被认为是普通控件?!


我认为对此的解释如下:

这些控件有两个版本,一个版本驻留在 user32.dll 中,另一个版本驻留在 comctl32.dll 中,现在当我使用视觉样式时(通过向我的程序添加一个 list 文件),使用的版本将是 comctl32.dll,如果我使用视觉样式,那么我应该调用 InitCommonControlsEx()使用 ICC_STANDARD_CLASSES

这是正确的吗?

最佳答案

回到过去,在 XP 主题之前,标准的、基本的 user32 控件之间是有区别的。按钮、编辑、静态、列表框和组合框。在 Windows 的早期版本中,这就是全部。

后来出现了通用控件。 ListView 、 TreeView 、工具栏、状态栏、进度条、日期时间选择器等。您必须调用 InitCommonControls 来初始化这些控件。

随着 XP 主题的出现,您现在必须调用 InitCommonControlsEx 来注册所有控件,甚至包括按钮、编辑等标准控件。但我不认为它们是常见的控件。对我来说,基本控件、按钮、编辑等与通用控件、 ListView 、 TreeView 等之间存在区别。不过这并不是真正重要的区别。你真的不需要担心它。

关于c - "BUTTON"是普通控件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33312287/

相关文章:

c - 为什么此 C 结构初始化代码会产生总线错误?

c++ - 如何保存和恢复hdc?

c++ - CreateWindowEx 显示中文乱码而不是原始文本

c++ - DrawText 和文本裁剪

c++ - 尝试显示屏幕保护程序的配置窗口时出现问题(来自以高强制完整性级别运行的 GUI 应用程序)

编译错误 : conflicting types for 'modify' - why?

c - 将值从一个函数传递给C中的另一个函数

c - C 中的简单结构 - 需要帮助

c - 如何读取表示数组元素的以空格分隔的整数并在 C 中对它们求和

c# - 获取Windows 8自动颜色主题的激活颜色