2009-10-17 3 views
2

런타임시 CStatic 및 CEdit 컨트롤을 몇 개 만드는 MFC 대화 프로그램이 있습니다. 어떻게 든이 컨트롤의 텍스트는 Cleartype이 활성화되어 있지 않습니다 (Windows의 Cleartype은 하위 픽셀 위치 지정 및 색칠로 텍스트를 매끄럽게합니다).런타임시 생성 된 MFC 텍스트 컨트롤에 대해 Windows ClearType 사용

그러나 Visual Studio 도구 상자에서 디자인 타임에 "Edit Control"또는 "Static Text"컨트롤을 수동으로 추가하면 이러한 컨트롤에 Cleartype이 활성화됩니다.

어떻게 든 도구 상자의 컨트롤은 런타임에 생성 된 컨트롤과 다릅니다. 누구든지 런타임에 생성 된 텍스트 컨트롤에 대해 Cleartype을 활성화하는 방법을 알고 있습니까? 이의 CStatic 컨트롤의 텍스트가 활성화 클리어되지

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

: 다음은 대화의 한 OnCreate 함수에서의 CStatic 컨트롤 생성의 코드입니다. 다른 글꼴을 설정해도 아무 효과가 없습니다.

나는 분실했습니다.

답변

3

나는 내 자신의 질문에 대한 답을 찾았습니다. 런타임에 작성된 컨트롤의 부족한 cleartype은 글꼴 관련입니다. 런타임에 컨트롤을 만들면 cleartype의 영향을받지 않고 다른 글꼴로 대체해야하는 기본 글꼴이 사용됩니다.

나는 다른 글꼴을 설정하려했지만 필자는 로컬 함수에서 글꼴을 만들었습니다. 글꼴을 설정 한 기능을 종료 한 후 글꼴이 손상되어 아무런 차이가 보이지 않습니다. 이제 부모 CWnd 파괴 될 때 파괴되는 글꼴 클래스 멤버 변수가 있습니다.