本部分包含有关应用于多个控件的编程元素的参考信息,而不仅仅是应用于特定控件。 大多数控件都支持函数、宏、消息、通知和结构。 例如,大多数控件使用 NM_HOVER 通知来处理鼠标单击。
综述
| 主题 | 内容 | 
|---|---|
| 关于常见控件的 | 公共控件是由通用控件库实现的一组窗口,它是 Windows作系统随附的 DLL。 | 
| 常见控件常见问题解答 | 本常见问题解答提供有关常见控件的一些常见问题的解答。 | 
Functions
| 主题 | 内容 | 
|---|---|
| DoReaderMode | 在窗口中启用读取器模式。 | 
| DPA_Clone | 复制动态指针数组(DPA)。 | 
| DPA_Create | 创建 DPA。 | 
| DPA_CreateEx | 使用给定的大小和堆位置创建 DPA。 | 
| DPA_DeleteAllPtrs | 从 DPA 中删除所有项,并相应地收缩 DPA。 | 
| DPA_DeletePtr | 从 DPA 中删除项。 如果需要,DPA 会收缩以容纳已删除的项目。 | 
| DPA_Destroy | 释放动态指针数组(DPA)。 | 
| DPA_DestroyCallback | 对 DPA 的每个元素调用 pfnCB,然后释放 DPA。 | 
| DPA_EnumCallback | 循环访问动态指针数组(DPA),并在每个项上调用 pfnCB。 | 
| DPA_GetPtr | 从 DPA 获取项。 | 
| DPA_GetPtrIndex | 获取在 DPA 中找到的匹配项的索引。 | 
| DPA_GetSize | 获取 DPA 的大小。 | 
| DPA_Grow | 更改 DPA 中的指针数。 | 
| DPA_InsertPtr | 在 DPA 中的指定位置插入新项。 如有必要,DPA 会扩展以适应新项。 | 
| DPA_LoadStream | 通过调用指定的回调函数读取每个元素,从流加载 DPA。 | 
| DPA_Merge | 合并两个 DPA 的内容。 | 
| DPA_SaveStream | 通过写出标头,然后调用指定的回调函数来写入每个元素,将 DPA 保存到流。 | 
| DPA_Search | 在 DPA 中查找项。 | 
| DPA_SetPtr | 将值分配给 DPA 中的项。 | 
| DPA_Sort | 对动态指针数组(DPA)中的项进行排序。 | 
| DrawShadowText | 绘制具有阴影的文本。 | 
| DrawTextExPrivWrap | 在指定的矩形中绘制带格式的文本。 此函数包装对 DrawTextEx的调用。 | 
| DrawTextWrap | 在指定的矩形中绘制带格式的文本。 它根据指定的方法设置文本的格式(展开制表符、对齐字符、断行等)。 此函数包装对 DrawText的调用。 | 
| DSA_Clone | 复制动态结构数组(DSA)。 | 
| DSA_Create | 创建 DSA。 | 
| DSA_DeleteAllItems | 从 DSA 中删除所有项。 | 
| DSA_DeleteItem | 从 DSA 中删除项。 | 
| DSA_Destroy | 释放 DSA。 | 
| DSA_DestroyCallback | 循环访问 DSA,对每个项调用指定的回调函数。 到达数组末尾后,将释放 DSA。 | 
| DSA_EnumCallback | 循环访问 DSA,对每个项调用 pfnCB。 | 
| DSA_GetItem | 从 DSA 获取元素。 | 
| DSA_GetItemPtr | 获取指向 DSA 中的元素的指针。 | 
| DSA_GetSize | 获取 DSA 的大小。 | 
| DSA_InsertItem | 将新项插入 DSA。 如有必要,DSA 会扩展以适应新项。 | 
| DSA_SetItem | 设置 DSA 中元素的内容。 | 
| DSA_Sort | 对 DSA 中的项进行排序。 | 
| ExtTextOutWrap | 使用当前所选字体、背景色和文本颜色绘制文本。 可以选择提供用于剪辑、不透明度或两者兼有的维度。 此函数包装对 extTextOut调用。 | 
| GetEffectiveClientRect | 计算包含所有指定控件的工作区中矩形的尺寸。 | 
| GetMUILanguage | 获取特定进程的常见控件当前正在使用的语言。 | 
| GetTextExtentPoint32Wrap | 计算指定文本字符串的宽度和高度。 此函数包装对 GetTextExtentPoint的调用。 | 
| InitCommonControls | 注册并初始化某些常见的控制窗口类。 此函数已过时。 新应用程序应使用 InitCommonControlsEx 函数。 | 
| InitCommonControlsEx | 从公共控件 DLL 注册特定的公共控件类。 | 
| InitMUILanguage | 使应用程序能够指定要与系统语言不同的公共控件使用的语言。 | 
| LoadIconMetric | 使用客户端指定的系统指标加载指定的图标资源。 | 
| LoadIconWithScaleDown | 加载图标。 如果图标不是标准大小,此函数会缩减较大的图像,而不是纵向扩展较小的图像。 | 
| MirrorIcon | 反向(镜像)图标,以便在镜像设备上下文上正确显示它们。 | 
| PFNDACOMPARE | 定义 DSA_Sort使用的比较函数的原型。 | 
| PFNDACOMPARECONST | 定义比较项为常量对象时 DSA_Sort 使用的 compare 函数的原型。 | 
| PFNDAENUMCALLBACK | 定义 DSA 和 DPA 函数使用的回调函数的原型。 | 
| PFNDAENUMCALLBACKCONST | 定义 DSA 和 DPA 函数在涉及的项指向常量数据的指针时使用的回调函数的原型。 | 
| PFNDPACOMPARE | 定义 DPA_Sort 和 DPA_Search使用的比较函数的原型。 | 
| PFNDPACOMPARECONST | 定义比较项为常量对象时 DPA_Sort 或 DPA_Search 使用的比较函数的原型。 | 
| PFNDPAENUMCALLBACK | 定义 DPA_EnumCallback使用的回调函数的原型。 | 
| PFNDPAMERGE | 定义 DPA_Merge使用的合并函数的原型。 | 
| PFNDPAMERGECONST | 使用常量值定义 DPA_Merge使用的合并函数的原型。 | 
| PFNDPASTREAM | 定义 DPA_LoadStream 和 DPA_SaveStream使用的回调函数的原型。 | 
| PFNDSAENUMCALLBACK | 定义 DSA_DestroyCallback使用的回调函数的原型。 | 
| ReaderScroll | 在已声明为活动滚动区域的读取器模式窗口部分内移动鼠标指针时使用的应用程序定义的回调函数。 | 
| ShowHideMenuCtl | 设置或删除指定的菜单项的复选标记属性,并显示或隐藏相应的控件。 如果该函数没有复选标记,则将复选标记添加到指定的菜单项,然后显示相应的控件。 如果菜单项已有复选标记,该函数将删除复选标记并隐藏相应的控件。 | 
| Str_GetPtr | 将字符串从一个缓冲区复制到另一个缓冲区。 | 
| Str_SetPtrW | 将 ppszCurrent 设置为 pszNew 的副本,并在必要时释放以前的值。 | 
| TranslateDispatch | 由 DoReaderMode 函数的客户端用来截获和显式处理针对读取器模式窗口滚动区域的任何窗口消息。 这是应用程序定义的回调函数。 | 
宏
| 主题 | 内容 | 
|---|---|
| DPA_AppendPtr | 在 DPA 的末尾插入一个新项。 | 
| DPA_FastDeleteLastPtr | 从 DPA 中删除最后一个指针。 | 
| DPA_FastGetPtr | 获取 DPA 中指定指针的值。 | 
| DPA_GetPtrCount | 获取 DPA 中的指针数。 | 
| DPA_GetPtrPtr | 获取指向 DPA 的内部指针数组的指针。 | 
| DPA_SetPtrCount | 设置 DPA 中的指针数。 | 
| DPA_SortedInsertPtr | 在指定现有项之前或之后插入新项。 | 
| DSA_AppendItem | 将新项追加到 DSA 的末尾。 | 
| DSA_GetItemCount | 获取 DSA 中的项数。 | 
| FORWARD_WM_NOTIFY | 发送或发布 WM_NOTIFY 消息。 | 
| HANDLE_WM_NOTIFY | 调用处理 WM_NOTIFY 消息的函数。 | 
| INDEXTOSTATEIMAGEMASK | 准备状态图像的索引,以便树视图控件或列表视图控件可以使用索引检索项的状态图像。 | 
消息
| 主题 | 内容 | 
|---|---|
| CCM_DPISCALE | 启用 Tree-View 控件、List-View 控件、ComboBoxEx 控件、标题控件、按钮、工具栏控件、动画控件和 图像列表自动高点缩放。 | 
| CCM_GETUNICODEFORMAT | 获取控件的 Unicode 字符格式标志。 | 
| CCM_GETVERSION | 获取由最新 CCM_SETVERSION 消息设置的控件的版本号。 | 
| CCM_SETUNICODEFORMAT | 设置控件的 Unicode 字符格式标志。 通过此消息,你可以在运行时更改控件使用的字符集,而无需重新创建控件。 | 
| CCM_SETVERSION | 此消息用于通知控件你期望与特定版本关联的行为。 | 
| CCM_SETWINDOWTHEME | 设置控件的视觉样式。 | 
| WM_NOTIFY | 当事件发生或控件需要一些信息时,由公共控件发送到其父窗口。 | 
| WM_NOTIFYFORMAT | 确定窗口是否接受 WM_NOTIFY 通知消息中的 ANSI 或 Unicode 结构。 
              
              WM_NOTIFYFORMAT 消息从公共控件发送到其父窗口,从父窗口发送到公共控件。 | 
通知
| 主题 | 内容 | 
|---|---|
| NM_CHAR | 处理字符键时,控件发送 NM_CHAR 通知代码。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_CUSTOMDRAW | 通知控件的父窗口自定义绘图作。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_CUSTOMTEXT | 通知控件的父窗口自定义文本作。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_FONTCHANGED | 当控件更改字体时,列表视图控件发送。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_GETCUSTOMSPLITRECT | 由按钮控件发送到其父级,以获取构成拆分按钮的两个矩形的度量值。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_HOVER | 鼠标悬停在项上时由控件发送。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_KEYDOWN | 当控件具有键盘焦点且用户按下某个键时,由控件发送。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_KILLFOCUS | 通知控件的父窗口控件已失去输入焦点。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_LDOWN | 通知控件的父窗口,鼠标左键已按下。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_NCHITTEST | 当控件收到 WM_NCHITTEST 消息时,由 rebar 控件发送。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_OUTOFMEMORY | 通知控件的父窗口,控件无法完成作,因为没有足够的内存可用。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_RDOWN | 目前不支持。 | 
| NM_RELEASEDCAPTURE | 通知控件的父窗口,该控件正在释放鼠标捕获。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_RETURN | 通知控件的父窗口控件具有输入焦点,并且用户已按下 Enter 键。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_SETCURSOR | 通知控件的父窗口,控件正在设置游标以响应 NM_SETCURSOR 消息。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_SETFOCUS | 通知控件的父窗口,该控件已接收输入焦点。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_THEMECHANGED | 通知控件的父窗口主题已更改。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_TOOLTIPSCREATED | 通知控件的父窗口控件已创建工具提示控件。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
| NM_TVSTATEIMAGECHANGING | 由树视图控件发送到其状态图像正在更改的父窗口。 此通知代码以 WM_NOTIFY 消息的形式发送。 | 
结构
| 主题 | 内容 | 
|---|---|
| COLORSCHEME | 包含工具栏或 rebar 中按钮绘图的信息。 | 
| DPASTREAMINFO | 包含 PFNDPASTREAM 回调函数使用的流项。 | 
| INITCOMMONCONTROLSEX | 携带用于从动态链接库(DLL)加载常见控件类的信息。 此结构与 InitCommonControlsEx 函数一起使用。 | 
| NMCHAR | 包含与字符通知消息一起使用的信息。 | 
| NMCUSTOMSPLITRECTINFO | 包含有关拆分按钮的两个矩形的信息。 随 NM_GETCUSTOMSPLITRECT 通知一起发送。 | 
| NMCUSTOMTEXT | 包含与自定义文本通知一起使用的信息。 | 
| NMHDR | 包含有关通知消息的信息。 | 
| NMKEY | 包含与关键通知消息一起使用的信息。 | 
| NMMOUSE | 包含与鼠标通知消息一起使用的信息。 | 
| NMOBJECTNOTIFY | 包含与 TBN_GETOBJECT、TCN_GETOBJECT和 PSN_GETOBJECT 通知代码一起使用的信息。 | 
| NMTOOLTIPSCREATED | 包含与 NM_TOOLTIPSCREATED 通知代码一起使用的信息。 | 
| READERMODEINFO | 包含初始化 DoReaderMode 函数所需的信息。 | 
常数
| 主题 | 内容 | 
|---|---|
| CDRF 常量 | 这些常量用作控件的返回值,以响应 NM_CUSTOMDRAW 通知代码。 | 
| 样式 | 本部分列出了常见的控件样式。 除非有说明,否则这些样式适用于标题控件、工具栏控件和状态窗口。 | 
| 窗口类 | 本部分列出了公共控件库提供的窗口类名称。 |