Как изменить растровое изображение кнопки панели инструментов в Win32?
Вопрос
Я создал панель инструментов с некоторыми элементами управления на нем, используя арматуру в окне. Может кто-нибудь, пожалуйста, скажи мне,
- Как получить HWND Кнопки / Combobox / etc (не нормальные кнопки в окне), если я знаю (только) ID его?
- Как получить HBitMAP, если я знаю идентификатор ресурса?
Как установить растровое изображение на контроллер?
Senddlgitemmessagew (hwnd, nid, bm_setimage, image_bitmap, (lparam) hbitmap);
Это не работает для панелей инструментов, не так ли? Я не мог найти способ сделать это, пожалуйста, помогите мне. Спасибо...
С уважением
Редактировать: Любой, пожалуйста? :(
Редактировать: ОК. Кажется, все заняты в эти дни. :( Кстати, это неправильный вопрос?
Решение
Вы могли бы скачать ControlSpy и попробуйте туда, чтобы почувствовать это.
Я проверил арматуру и увидел, что RB_SetBandinfo (под Сообщения) Может быть то, что вы ищете.
Другие советы
Getdlgitem. Будет работать так же хорошо с арматурой, как и с диалоговым окном.
Вы можете использовать функцию GetDLGITEM с любым вариантом Parent-Child Window, а не только с диалоговыми окнами. До тех пор, пока параметр HDLG указывает родительское окно, а дочернее окно имеет уникальный идентификатор (как указано параметром HMENU в функции Createwindow или Createwindowex, которая создала дочернее окно), GetDLGITEM возвращает действительную обработку в детское окно.
Вы можете использовать LoadImage для загрузки растрового изображения из ресурса и вернуть HBitMap.
Ну наконец то, SendMessage(hWndButton, BM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM) hBitmap);