Como alterar o bitmap do botão da barra de ferramentas no Win32?
Pergunta
Eu criei uma barra de ferramentas com alguns controles usando o vergalhão em uma janela. Alguém pode me dizer,
- Como obter o hwnd de um Botões/Combobox/etc (Botões não normais em uma janela) Se eu souber (apenas) o ID dele?
- Como obter o HBITMAP se eu souber o ID do recurso?
Como definir o bitmap para o controlador?
SenddlgitemMessageW (hwnd, nid, bm_setImage, image_bitmap, (lparam) hitmap);
Isso não está funcionando para barras de ferramentas, não é? Não consegui encontrar uma maneira de fazer isso, por favor me ajude. Obrigada...
Cumprimentos
EDIT: Alguém, por favor? :(
EDIT: OK. Parece que todos estão ocupados hoje em dia. :( btw, é uma pergunta errada?
Solução
Você pode baixar ControlSpy E tente lá para ter uma idéia.
Eu verifiquei o vergalhão e vi que rb_setbandinfo (sob Mensagens) pode ser o que você está procurando.
Outras dicas
Getdlgitem Funcionará tão bem com um vergalhão quanto com uma caixa de diálogo.
Você pode usar a função getdlgitem com qualquer par de janelas pai-filho, não apenas com caixas de diálogo. Desde que o parâmetro HDLG especifique uma janela pai e a janela filho possui um identificador exclusivo (conforme especificado pelo parâmetro Hmenu na função CreateWindow ou CreateWindowEx que criou a janela filho), Getdlgitem retorna um identificador válido para a janela Child.
Você pode usar o LoadImage para carregar um bitmap de um recurso e retornar o HBITMAP.
Finalmente, SendMessage(hWndButton, BM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM) hBitmap);