[C con Clase] cambiar el tamaó del texto de un boton

Salvador Pozo salvador en conclase.net
Vie Ene 5 20:58:27 CET 2007


El pasado 2007-01-05 14:31:46, borubudur escribió:
 
Hola:

b> hola de nuevo.... y gracias por responder a las dudas que me van surgiendo.

Hola:

b> Estoy haciendo un programa de preguntas y respuestas, para ello he dispuesto unos botones en la ventana mediante sentencias del tipo ...
b> ...
b>      SetWindowText(hwndBoton7 , respuesta[7]);
b>      SetWindowText(hwndBoton9 , respuesta[9]);
b> ...
b> o sea que no he utilizado el archivo de recursos *.rc
b> Me interesaría mucho poder cambiar los colores y el tamaño del texto, sin embargo no encuentro nada referido al texto de los controles, sí he hallado fórmulas para TextOut, pero creo que no son de apliación en este caso.

Para cambiar el formato de la fuente del botón debes enviar al control un mensaje WM_SETFONT:

  static HFONT hfont;
...
   hfont = (HFONT)GetStockObject( DEFAULT_GUI_FONT );
   SendMessage(hctrl, WM_SETFONT, (WPARAM)hfont, MAKELPARAM(TRUE, 0));

Para cambiar los colores, en teoría, bastaría con procesar el mensaje WM_CTLCOLORBTN, pero desafortunadamente, esto no funciona, ya que los colores de los botones están predefinidos en el sistema.

En vez de eso, tendrías que crear botones con el estilo owner-draw: BS_OWNERDRAW, y procesar los mensajes WM_DRAWITEM. Sin embargo esto es bastante complicado de explicar en pocas palabras, y será uno de los temas que se trate en próximos capítulos del curso del API (que ahora están en preparación).

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase