¿Cómo cambiar el mapa de bits del botón de la barra de herramientas en Win32?
Pregunta
He creado una barra de herramientas con algunos controles usando barras de refuerzo dentro de una ventana. ¿Alguien puede decirme?
- Cómo obtener el hwnd de un Botones/Combobox/etc. (no botones normales en una ventana) Si sé (solo) la identificación de él?
- ¿Cómo obtener el HBITMAP si conozco la identificación del recurso?
¿Cómo establecer el mapa de bits en el controlador?
SenddlgitemMessagew (hwnd, nid, bm_setimage, image_bitmap, (lParam) hbitmap);
Esto no funciona para barras de herramientas, ¿no? No pude encontrar una manera de hacerlo, por favor ayúdame. Gracias...
Saludos
Editar: ¿Alguien por favor? :(
Editar: OK. Parece que todos están ocupados en estos días. :( Por cierto, ¿es una pregunta equivocada?
Solución
Podrías descargar Control Y pruébelo allí para tener una idea de ello.
Revisé la barra de refuerzo y vi que rb_setBandinfo (debajo Mensajes) podría ser lo que estás buscando.
Otros consejos
Getdlgitem Funcionará igual de bien con una barra de refuerzo como lo hace con un diálogo.
Puede usar la función getDlgitem con cualquier par parent-hijo de la ventana, no solo con cuadros de diálogo. Mientras el parámetro HDLG especifique una ventana principal y la ventana infantil tenga un identificador único (según lo especificado por el parámetro HMENU en la función CreateWindow o CreateWindowex que creó la ventana del niño), GetDlGiTem devuelve un mango válido a la ventana del niño.
Puede usar LoadImage para cargar un mapa de bits de un recurso y devolver el HBITMAP.
Finalmente, SendMessage(hWndButton, BM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM) hBitmap);