Как изменить растровое изображение кнопки панели инструментов в win32? - PullRequest
1 голос
/ 15 апреля 2010

Я создал панель инструментов с некоторыми элементами управления, используя ReBar в окне. Может кто-нибудь, пожалуйста, скажите мне,

  1. Как получить HWND кнопок / комбинированного списка / и т. Д. (не обычных кнопок в окне), если я знаю (только) идентификатор этого?
  2. Как получить HBITMAP, если я знаю идентификатор ресурса?
  3. Как установить растровое изображение для контроллера?

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

Это не работает для панелей инструментов, не так ли? Я не мог найти способ сделать это, пожалуйста, помогите мне. Спасибо ...

Привет

EDIT: Кто-нибудь, пожалуйста? (

EDIT: Хорошо. кажется, все заняты в эти дни. :( Кстати, это неправильный вопрос?

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Вы можете скачать ControlSpy и попробовать его там, чтобы почувствовать его.
Я проверил арматуру и увидел, что RB_SETBANDINFO (под Messages ) может быть тем, что вы ищете.

0 голосов
/ 16 апреля 2010

GetDlgItem будет работать так же хорошо с арматурой, как и с диалогом.

Вы можете использовать функцию GetDlgItem с любой парой родительских и дочерних окон, а не только с диалоговыми окнами. Пока параметр hDlg указывает родительское окно, а дочернее окно имеет уникальный идентификатор (как указано параметром hMenu в функции CreateWindow или CreateWindowEx, которая создала дочернее окно), GetDlgItem возвращает действительный дескриптор дочернего окна. *

Вы можете использовать LoadImage для загрузки растрового изображения из ресурса и возврата HBITMAP.

Наконец, SendMessage(hWndButton, BM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM) hBitmap);

...