Cómo texto conjunto en una etiqueta estática al estilo negrita?
-
30-09-2019 - |
Pregunta
Estoy escribiendo una aplicación para un dispositivo Pocket PC 2003. En ella hay un cuadro de diálogo donde se muestra diversa información de texto. La información se separa de modo que cada pieza reside dentro de su propia etiqueta, definida como LTEXT en el archivo de recursos.
Ahora mi problema es que, por el momento, todos los lables de texto tienen el mismo tipo de letra y estilo (normal o simple, es decir, no en negrita o cursiva); Quiero quiero uno que se fijará en negrita. Sé que puedo establecer la fuente en negrita en el archivo de recursos, pero que define el estilo de todos etiquetas.
¿Cómo se puede lograr esto? Lo he visto utilizar en Windows 'sobre' la pantalla, así que sé que es posible. He escrito el programa en C ++ utilizando directamente la API de Win32 (a excepción de ciertos diálogos en los que he utilizado el archivo de recursos) por lo que agradecería si la respuesta se da en el mismo lenguaje y enfoque.
Gracias.
Solución
En el editor de recursos, editar el elemento de texto estático, y cambiar su ID de control a algo único:. IDC_BOLD por ejemplo
En el DialogProc de los cuadros de diálogo que aloja el control, agregar un controlador WM_CTLCOLORSTATIC
:
case WM_CTLCOLORSTATIC:
HDC hdc;
HWND hwndCtl;
hwndCtl = (HWND) lParam;
hdc = (HDC) wParam;
if( GetWindowLong(hwndClt, GWL_ID ) == IDC_BOLD )
{
SetBkMode(hdc,TRANSPARENT);
SetTextColor(hdc,RGB(0xff,0,0)); // turn the text red for fun :)
SelectObject(hdc,hBoldFont); // but you want this...
return (INT_PTR)GetSysColorBrush(COLOR_BTNFACE);
//return 0L; // if visual themes are enabled (common controls 6) then 0 is better.
}
// default processing
return 0;
Se está desarrollando para Pocket PC 2003, que no sé lo que están disponibles botones de estilos. de esta página se refiere por supuesto a escritorio XP. Sin embargo, si los botones en los diálogos no son planas botones 95esq grises, entonces podría ser más apropiado para devolver 0 como que va a pintar el fondo del texto correctamente si el fondo de los cuadros de diálogo no es de color gris claro.
estilos Pre-visuales un retorno de 0 hace que el sistema para restablecer el DC lo que es importante saber qué retorno es apropiado.