- Код: Выделить всё
lv_Hook = SetWindowsHookEx(WH_CBT, AddressOf MsgBoxHook, App.hInstance, GetCurrentThreadId())
затем вызываю стандартный MsgBox и в функции MsgBoxHook делаю следующее
- Код: Выделить всё
...
hIconWnd = FindWindowEx(wParam, 0&, "Static", vbNullString)
Call SendMessage(hIconWnd, STM_SETICON, lv_hIcon, ByVal 0&)
...
всё замечательно работает... но что делать если мне нужно вставить вместо стандартной иконки не иконку а bitmap? В той же функции ставлю статику стиль SS_BITMAP, затем в SendMessage передаю сообщение STM_IMAGE с параметрами IMAGE_BITMAP и HBITMAP моей картинки:
- Код: Выделить всё
hIconWnd = FindWindowEx(wParam, 0&, "Static", vbNullString)
SetWindowLong hIconWnd, GWL_STYLE, GetWindowLong(hIconWnd, GWL_STYLE) Xor SS_ICON
SetWindowLong hIconWnd, GWL_STYLE, GetWindowLong(hIconWnd, GWL_STYLE) Or SS_BITMAP
Call SendMessage(hIconWnd, STM_SETIMAGE, IMAGE_BITMAP, lv_hBmp)
Однако вместо того, чтобы появиться битмапу - сжимается статик (т.е. его left, top, right, bottom становятся равны 11)
Написал на VC - работает, т.е. STM_SETIMAGE - ставит статику битмап...
Подскажите, где я ошибаюсь? Может статику стиль забыл какой-то поставить, может в SendMessage с параметрами что-то не так...
И видется мне ещё одно альтернативное решение: можно HBITMAP преобразовать в HICON и тогда проблема решиться сама собой... но как это сделать?