2010-02-26 4 views
4
Application.SetCompatibleTextRenderingDefault(false); 

오류 :Application.SetCompatibleTextRenderingDefault (false);

Before the establishment of the first object IWin32Window in the annex to call SetCompatibleTextRenderingDefault.

왜 오류가? 피하는 법? SetCompatibleTextRenderingDefault은 실제로 무엇을합니까?

답변

2

업데이트 : 의견에 언급 된대로 대답이 잘못되었습니다. 아래에 그것을 변경하고 그것을 rephrasing 대신 MSDN 문서를 참조하십시오.

docs 상태이므로 첫 번째 창을 만들기 전에이 상태를 호출해야합니다.

일부 컨트롤에 대한 기본 렌더링 엔진을 설정합니다. GDI +는 참이면 true, 그렇지 않으면 GDI입니다. 자세한 내용은 this MSDN article을 참조하십시오.

+0

콘솔 응용 프로그램에서 사용할 수 있습니까? 왜냐하면 내가 main() { – Cynede

+0

콘솔 응용 프로그램을 작성하고 있다면이 함수를 호출 할 필요가 없으며, 성공하면 아무 효과가 없을 것입니다. – Timores

+0

@Timores 콘솔 응용 프로그램을 사용하는 경우에도 레이블을 만들 수 있지만이 레이블을 WindowsForm에 표시 할 수는 없지만 Label.DrawBitmap을 사용할 수는 있습니다. 그리고 GDI + 대신 Label 및 GDI를 사용하는 경우 레이블의 일부 문자 (및 비트 맵의 ​​문자)가 제대로 렌더러되지 않습니다. – sabisabi

0

defaultValue 형식 : System.Boolean 새 컨트롤에 사용할 기본값입니다. true 인 경우 UseCompatibleTextRendering을 지원하는 새 컨트롤은 텍스트 렌더링에 GDI + 기반 Graphics 클래스를 사용합니다. false의 경우, 새로운 컨트롤은 GDI 기반의 TextRenderer 클래스를 사용합니다.

8

위로 가기 .NET 1.x에서는 GDI + Graphics 클래스를 사용하여 특정 컨트롤을 렌더링했습니다. 성능 문제로 인해 접근 방식이 취소되었으며 .NET 버전 2.0 이상에서는 대신 GDI TextRenderer 클래스를 사용합니다.

SetCompatibleTextRenderingDefault(true)을 호출하면 , 2.0 이전 렌더링을 사용하도록 일부 컨트롤이 강제로 설정됩니다.

.NET 1.x 응용 프로그램을 업그레이드하고 이전 스타일을 유지해야하는 경우가 아니면 항상 SetCompatibleTextRenderingDefault(false)을 사용해야합니다. 또는이 통화를 완전히 삭제할 수 있습니다. false이 기본값이므로 명시적인 false 호출이 필요하지 않습니다.

자세한 내용은 relevant MSDN page에서 확인할 수 있습니다.