如何在win32中更改工具栏按钮的位图?

时间:2010-04-15 18:32:13

标签: c++ winapi hwnd toolbars hbitmap

我在窗口中使用ReBar创建了一个带有一些控件的工具栏。谁能告诉我,

  1. 如果我知道(仅)它的ID,如何获得按钮/组合框/等的HWND(不是窗口中的普通按钮)?
  2. 如果我知道资源的ID,如何获取HBITMAP?
  3. 如何将位图设置为控制器?

    SendDlgItemMessageW(hWnd,nId,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hBitmap);

  4. 这不适用于工具栏,不是吗?我找不到办法,请帮助我。谢谢......

    此致

    编辑: 有人请? :(

    编辑: 好。这些天似乎每个人都很忙。 :(顺便说一下,这是一个错误的问题吗?

2 个答案:

答案 0 :(得分:1)

您可以下载ControlSpy并在那里试一试,感受一下 我检查了钢筋,看到RB_SETBANDINFO(在消息下)可能就是您要找的。

答案 1 :(得分:0)

GetDlgItem和Rebar一样可以和对话框一样工作。

  

您可以将GetDlgItem函数与任何父子窗口对一起使用,而不仅仅使用对话框。只要hDlg参数指定父窗口并且子窗口具有唯一标识符(由创建子窗口的CreateWindow或CreateWindowEx函数中的hMenu参数指定),GetDlgItem就会向子窗口返回有效句柄。

您可以使用LoadImage从资源加载位图并返回HBITMAP。

最后,SendMessage(hWndButton, BM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM) hBitmap);