2017-05-19 9 views
0

최신 Win10 Creators 업데이트 화면 렌더링 문제가있는 기존 Windows 응용 프로그램이 있습니다. NET 응용 프로그램을 resolveApplication.EnableVisualStyles 호출하여 문제를 참조하십시오. 그러나 내 응용 프로그램이 사전 닷넷 (델파이 6에서) 작성된 것을 감안할 때 나는 같은 일을하기 위해 사용할 수있는 네이티브 시스템 호출이 있기를 바랍니다.Application.EnableVisualStyles와 동일한 기본 호출은 무엇입니까?

+0

항상 원본을 참조 할 수 있습니다 (https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Application.cs,2788587b444f7889). –

+0

간단하지 않습니다. 현대적인 델파이라면 쉽게 충분합니다. 그러나 Delphi 6 및 이전 버전에서는 타사 구성 요소가 필요합니다. 그래서 델파이의 어떤 버전을 사용하십니까? –

+0

Delphi 6.이 질문을 반영하도록 수정합니다. – Aheho

답변

2

Delphi 6에서는 시각적 스타일을 직접 사용할 수 없습니다. 타사 라이브러리 인 Mike Lischke의 Windows XP Theme Manager 라이브러리를 사용해야합니다. 사실이 라이브러리는 소스 코드를 읽음으로써 쉽게 볼 수 있듯이 델파이 7에 포함 된 빌트인 지원의 기초를 형성했습니다. 델파이 6 프로그램에서 이것을 사용하기 위해서는

는 다음과 같은 단계를 수행해야합니다 :

  1. 프로젝트에서 XP 테마 관리자 라이브러리를 포함합니다.
  2. 응용 프로그램 매니페스트 자원을 comctl32 v6을 지정하는 실행 파일에 연결하십시오. 이 작업을 수행하는 방법을 설명하는 온라인 리소스가 많습니다. 여기에서 반복하지 않겠습니다.

프로그램이 현재 응용 프로그램 매니페스트와 연결되어 있지 않은 경우 다른 동작이 변경 될 수 있습니다. 매니페스트가 없으면 프로그램이 UAC 하에서 가상화됩니다. 매니페스트를 사용하면 가상화가 비활성화됩니다. 이제 2005 년 Vista에서 가상화가 도입되어 개발자가 UAC에 도입 된 변경 사항에 적응할 수 있도록 도와줍니다. 아직 UAC에 프로그램을 적용하지 않았다면 아마 그렇게 할 시간이 길 것이라고 제안 할 것입니다!

+0

"다음 단계를 수행해야합니다."-> "다음 단계 중 하나"? –

+0

@sertac 나는 둘 다 필요하다고 생각한다 –

+0

D7의 "xpman"단위와 혼동했을 것이다. 단지 "windowsxp.res"를 포함하는 것이다. –