![]() |
Agregar boton con imagen
Hola a todos, les comento un poco el problema que tengo a ver si alguien tiene info al respecto. Basicamente estoy agregando un boton en tiempo de ejecución de la siguiente manera :
CreateWindow('Button', ' ', WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT or WS_CLIPSIBLINGS , 205, 2, 30, 25, hw, HMENU(WM_BUTTON_50),0,nil); Lo hago de esta manera ya que despues a traves de un HOOK identifico cuando hace click sobre este boton (wParam = WM_BUTTON_50). Es posible agregarle una imagen a este boton? o alguien sabe de algun otro componente que pueda agregar con imagen y al que por supuesto pueda definirle HMENU(WM_BUTTON_50) de manera tal que pueda identificarlo a traves de HOOK cuando se haga click en el mismo? Muchas gracias! |
¿Porqué no usas un SpeedButton?. Puedes asignar su evento OnClick dinámicamete también.
Saludos. |
Hola, gracias por la sugerencia. Habia probado hacer con un SpeedButton pero tuve problemas a la hora de asignarle un ParentWindow ya que no posee esa propiedad y lo necesito dentro de una determinada ventana. Trate con la funcion SetParent, pero tengo problemas a la hora de obtener el Handle del speedbutton. Alguna de idea de como puedo asignar el speedbutton en tiempo de ejecucion a una ventana? De todas maneras voy a seguir probando, a lo mejor algo esoty haciendo mal. Gracias!
|
Un ejemplo con un TBitBtn:
Código:
|
Muchas gracias escafandra, excelente aporte como de costumbre :) Ahora bien, me esta costando un poco la equivalencia del código en DELPHI, sobre todo (void*)NULL, no se si lo estoy haciendo bien y parece me está trayendo problemas...si tenes a mano la equivalencia te lo agradecería,sino igual ya con la idea que me diste me va servir mucho... Muchas gracias nuevamente!
|
(void*)NULL es un puntero nulo, equivalente a nil.
Saludos. |
Al final logré agregarle imagen al boton creado con la funcion windowcreate. Aqui dejo el código:
//Creo el boton B1 := CreateWindow('Button', '', WS_CLIPSIBLINGS or WS_BORDER or WS_VISIBLE or BS_PUSHBUTTON or BS_HOLLOW or WS_CHILD or BS_ICON,205, 2, 30, 25, hw, HMENU(WM_BUTTON_50),0,nil); //envío mensaje para cargar imagen en el boton SendMessage(B1,BM_SETIMAGE,IMAGE_ICON,LoadImage(0,'C:\Image48x48.ico',IMAGE_ICON,0,0,LR_LOADFROMFILE )); Saludos! |
A pesar de que lo solucionaste, quiero ilustrar el ejemplo que puse en C++Builder:
Cita:
Saludos. |
Boton redondo??
Gracias por la respuesta escafandra, te comento que ya habia probado hacer algo como lo q indicas arriba, el tema es q el boton se me agregaba pero sin imagen, es decir un boton con fondo NEGRO,un boton todo negro, no se cual será el motivo, es por eso que decidi seguir intentando a traves de funciones de la api de windows hasta q salió je. A lo mejor tuve ese problema por el tipo de ventana a la que le agregaba el TBitBtn boton, no era un panel común, es una ventana de otra aplicacion, en fin...
Cambiando un poco de tema, ahora estoy intentando crear el boton pero "redondeado"...intenté con el siguiente código pero nada :( Primero que nada me gustaría saber si es posible hacer para asi poder seguir investigando y probando. Dejo el código que se me ocurrio pero no funciona je: Algún aporte??muchas gracias! Saludos! |
La franja horaria es GMT +2. Ahora son las 07:12:59. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi