TB_SETPRESSEDIMAGELIST 消息
设置工具栏用于显示处于按下状态的按钮的图像列表。
参数
-
wParam
-
图像列表的索引。 如果只使用一个图像列表,请将此参数设置为零。 有关使用多个图像列表的详细信息,请参阅“备注”。
-
lParam
-
要设置的图像列表的句柄。 如果此参数为 NULL,则按钮中不会显示任何图像。
返回值
返回以前用于显示处于按下状态的按钮的图像列表的句柄;如果未设置此类图像列表,则返回 NULL。
备注
注意
应用程序负责在销毁工具栏后释放图像列表。
无法将 TB_SETPRESSEDIMAGELIST 消息与 TB_ADDBITMAP 结合使用。 它也不能与使用 CreateToolbarEx 创建的工具栏一起使用,后者在内部调用 TB_ADDBITMAP。 使用 CreateToolbarEx 创建工具栏或使用 TB_ADDBITMAP 添加图像时,工具栏会在内部管理图像列表。 尝试使用 TB_SETPRESSEDIMAGELIST 对其进行修改会产生不可预知的后果。
按钮图像不需要来自同一个图像列表。 若要对工具栏按钮图像使用多个图像列表,请执行以下操作:
- 通过向工具栏控件发送 CCM_SETVERSION 消息来启用多个图像列表,其中 wParam(版本号)设置为 5。
- 对于要使用的每个图像列表,向工具栏控件发送 TB_SETPRESSEDIMAGELIST 消息。 将 wParam 设置为应用程序定义的 wParam 值,该值将用于标识列表。 将 lParam 设置为列表的 HIMAGELIST 句柄。
- 对于每个按钮,请将按钮的 TBBUTTON 结构的 iBitmap 成员设置为 MAKELONG(iIndex、iImageID)。 iImageID 值是步骤 2 中定义的相应图像列表的 ID。 iIndex 值是该列表中特定图像的索引。
- 通过向工具栏控件发送 TB_ADDBUTTONS 消息来添加按钮。
以下代码片段演示了如何将五个按钮添加到工具栏,其中包含来自三个不同的图像列表的图像。 使用 CCM_SETVERSION 消息启用对多个图像列表的支持。 然后设置图像列表并分配 ID 0-2。 按钮是从图像列表中分配的图像,如下所示:
- 按钮 0 来自图像列表 0 (ahim[0]),索引为 1。
- 按钮 1 来自图像列表 1 (ahim[1]),索引为 1。
- 按钮 2 来自图像列表 2 (ahim[2]),索引为 1。
- 按钮 3 来自图像列表 0 (ahim[0]),索引为 2。
- 按钮 4 来自图像列表 1 (ahim[1]),索引为 3。
最后,使用 TB_ADDBUTTONS 消息将按钮添加到工具栏控件。
// Enable multiple image lists
SendMessage(hwndTB, CCM_SETVERSION, (WPARAM) 5, 0);
//Set the image lists and assign them IDs of 0-2
SendMessage(hwndTB, TB_SETPRESSEDIMAGELIST, 0, (LPARAM)ahiml[0]);
SendMessage(hwndTB, TB_SETPRESSEDIMAGELIST, 1, (LPARAM)ahiml[1]);
SendMessage(hwndTB, TB_SETPRESSEDIMAGELIST, 2, (LPARAM)ahiml[2]);
// Create the five buttons
TBBUTTON rgtb[5];
//... initialize the TBBUTTON structures as usual ...
//Assign images to each button
rgtb[0].iBitmap = MAKELONG(1, 0);
rgtb[1].iBitmap = MAKELONG(1, 1);
rgtb[2].iBitmap = MAKELONG(1, 2);
rgtb[3].iBitmap = MAKELONG(2, 0);
rgtb[4].iBitmap = MAKELONG(3, 1);
// Add the five buttons to the toolbar control
SendMessage(hwndTB, TB_ADDBUTTONS, 5, (LPARAM)(&rgtb);
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
|
另请参阅
-
引用
-
其他资源