1

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

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

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

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

问候

编辑:有人请吗?:(

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

4

2 回答 2

1

您可以下载ControlSpy并在其中试用以感受一下。
我检查了 Rebar 并看到 RB_SETBANDINFO (在Messages下)可能是您正在寻找的。

于 2010-04-16T16:35:01.710 回答
0

GetDlgItem对 Rebar 的使用效果与对 Dialog 的使用效果一样好。

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

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

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

于 2010-04-16T16:05:07.643 回答