Domanda

Ho un programma MFC alla finestra in cui creo alcuni controlli CStatic e CEdit in fase di esecuzione. In qualche modo il testo in questi controlli non sono ClearType abilitato (ClearType nei testi di Windows leviga dal posizionamento sub-pixel e la colorazione).

Tuttavia, quando si aggiunge manualmente un "Edit Control" o un "Testo statico" controllo in fase di progettazione dalla Casella degli strumenti di Visual Studio questi controlli sono ClearType abilitato.

Così in qualche modo i controlli dalla casella degli strumenti sono diversi dai controlli creati in fase di esecuzione? Qualcuno sa come attivare ClearType per i controlli di testo creati in fase di esecuzione? Ecco un frammento di codice di una creazione di controllo CStatic nella funzione OnCreate della finestra di dialogo:

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

Il testo di questo controllo non è CStatic ClearType abilitato. L'impostazione di un font diverso non ha alcun effetto.

Mi sono perso.

È stato utile?

Soluzione

Non ho trovato la risposta alla mia domanda. La ClearType manca sui controlli creati in fase di esecuzione è font-related. Quando si crea un controllo in fase di esecuzione un font di default è utilizzato che non è influenzato da ClearType e dovrebbe essere sostituito da un carattere diverso.

Nella mia interrogazione ho notato che avevo provato a fissare un tipo di carattere diverso, però avevo creato un tipo di carattere in una funzione locale. Dopo essere usciti dalla funzione in cui è stato impostato il tipo di carattere del tipo di carattere ha distrutto in modo non ho visto alcuna differenza. Ora ho una variabile membro di classe per il tipo di carattere che viene distrutto solo quando il CWnd genitore viene distrutta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top