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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top