Habilitar ClearType de Windows para los controles de texto MFC creados en tiempo de ejecución

StackOverflow https://stackoverflow.com/questions/1583137

Pregunta

Tengo un programa de diálogo MFC en el que se crea unos controles CStatic y CEdit en tiempo de ejecución. De alguna manera el texto de estos controles no son ClearType activado (ClearType en los textos de Windows suaviza mediante el posicionamiento de subpíxeles y colorear).

Sin embargo, cuando se añade manualmente un "control de edición" o un control "Texto estático" en tiempo de diseño de la caja de herramientas de Visual Studio Estos controles se ClearType activado.

Así que de alguna manera los controles de la caja de herramientas son diferentes de los controles creados en tiempo de ejecución? ¿Alguien sabe cómo habilitar ClearType para los controles de texto creados en tiempo de ejecución? He aquí un fragmento de código de una creación de control CStatic en la función OnCreate del diálogo:

CRect crc; crc.SetRect(100, 10, 300, 40);
m_static.Create(_T("Personeelsnummer?"), WS_CHILD | WS_VISIBLE, crc, this, IDC_STATIC1);

El texto en este control no está activado CStatic ClearType. Configuración de una fuente diferente no tiene ningún efecto.

Estoy perdido.

¿Fue útil?

Solución

he encontrado la respuesta a mi propia pregunta. El cleartype que carecen de los controles creados en tiempo de ejecución es relacionadas con la fuente. Cuando uno crea un control en tiempo de ejecución una fuente predeterminada se utiliza lo que se ve afectada por cleartype y debe ser reemplazada por una fuente diferente.

En mi pregunta me señaló que había intentado fijar un tipo de letra diferente, sin embargo yo había creado un tipo de letra en una función local. Después de salir de la función en la que la fuente fue establecer la fuente fue destruido, así que no veo ninguna diferencia. Ahora tengo una variable miembro de la clase de la fuente que se destruye sólo cuando el padre CWnd se destruye.

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