2010-04-12 11 views
5

Tengo un control de lista dibujado por el propietario en mi programa de Windows. Uso CListCtrl :: GetBkColor para obtener el color de fondo, y para un elemento seleccionado utilizo GetSysColor (COLOR_HIGHLIGHT). Esto coincide con lo que Windows usa para los controles de lista dibujados por el propietario, excepto en el caso en que el control no tiene foco, luego el fondo se reemplaza por gris.¿Qué color usar en el fondo de control de lista de Windows del propietario?

¿Windows usa una de las constantes de GetSysColor para el fondo seleccionado pero desenfocado? ¿Si es así, Cuál?

Respuesta

6

COLOR_INACTIVECAPTION (3), creo.

Actualización: No, parece que es solo COLOR_BTNFACE (15).

+0

Y el texto debería ser COLOR_BTNTEXT. ¡Muchas gracias! –

1

Ah, de acuerdo. Con un poco de tocar el violín, he determinado que utiliza el color SystemColors.Control en .Net, que es el equivalente de la COLOR_3DFACE

COLOR_BTNFACE, COLOR_MENU C++ y COLOR_MENUBAR todo también representan el mismo color en una instalación predeterminada de Windows de .

+1

Un 'ListView' se comporta de esta manera, con' View' establecido en 'Details' y' HideSelection' establecido en 'false'. – MusiGenesis

+0

@MusiGenesis, gracias por completar los detalles: tiene toda la razón. –

+0

COLOR_3DFACE y COLOR_BTNFACE son exactamente iguales (ambos se asignan al valor 15). Los otros, si bien pueden ser del mismo color, inicialmente son valores separados y se pueden cambiar de forma independiente. Por lo tanto, la razón por la que hice la pregunta. –

Cuestiones relacionadas