WebBrower control Rendering Version 설정
프로그래밍 언어/C++2020. 8. 31. 14:14
WPF의 WebBrowser Control은 기본적으로 IE7을 기준으로 화면을 렌더링 합니다. IE7은 HTML5, CSS3 해석 과 더불어 Rendering에 있어 차이가 있기 때문에 IE7 이상의 버전으로 렌더링이 필요한 경우가 있습니다.
다행히도 Registry설정을 통해 WPF Application에서 사용할 Brower Version 및 Mode를 통제할 수 있습니다. 이 설정은 개별 Application마다 각각 적용되며, 전역설정은 없습니다. Registry를 등록하는 방법은 2가지로 구분되는데, 현재 사용자에게만 적용되게 하거나 모든 사용자에게 적용되는 설정으로 나누어집니다.
현재 사용자에게 적용
이 설정은 현재 로그인 된 사용자에게만 적용되는 방법입니다. 이 방법은 단순하고 관리자 권한이 불필요한 방법입니다. 즉, 관리자 계정으로 로그인하거나 Application을 재설치하는 등의 방법이 불필요합니다. 단지 Registry 등록 후 Application을 재시작해주면 변경사항이 반영됩니다.
Registry를 실행하고 다음 경로를 따라간 후 값을 설정합니다.
- 경로: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
- 값: DWORD YourApplication.exe
※ FeatureControl과 FEATURE_BROWSER_EMULATION 노드가 존재하지 않을 경우 생성하시면 됩니다.
전체 사용자에게 적용
32bit 혹은 64bit 환경에 따라 설정이 달라집니다.
32bit 혹은 64bit 전용 Application
- 경로: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
- 키값: DWORD YourApplication.exe
64bit 환경에서 32bit 모드로 실행되는 경우
- 경로: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
- 키값: DWORD YourApplication.exe
키 데이터
키의 데이터는 다음과 같이 할당해줍니다.
- 11001 (0x2EDF) !DOCTYPE 선언과 상관없이 IE11 edge로 출력
- 11000 (0x2AF8) standards-based !DOCTYPE 선언이 있을 경우 IE11 edge로 출력
- 10001 (0x2AF7) !DOCTYPE 선언과 상관없이 IE10 Standards mode로 출력
- 10000 (0x2710) standards-based !DOCTYPE 선언이 있을 경우 IE10 Standards mode로 출력
- 9999 (0x270F) !DOCTYPE 선언과 상관없이 IE9 Standards mode로 출력
- 9000 (0x2328) standards-based !DOCTYPE 선언이 있을 경우 IE9 mode로 출력
- 8888 (0x22B8) !DOCTYPE 선언과 상관없이 IE8 Standards mode로 출력
- 8000 (0x1F40) standards-based !DOCTYPE 선언이 있을 경우 IE8 Mode로 실행
- 7000 (0x1B58) standards-based !DOCTYPE 선언이 있을 경우 IE7 Standards mode로 실행
적용 전 고려사항
- IE Version에 따라 Rendering방법이 달라지기에 HTML도 변경되어야 할 수 있습니다.
- BrowserControl에서 HTML을 제어하기 위해 제공하는 COM Interaface도 변경됩니다. 따라서 기존 IE7을 사용하는 Application을 IE9으로 변경하면, 내부의 COM Interface 코드 및 로직을 다시 작성하거나 테스트하여야 합니다.
- 사용자 환경에 해당 IE가 설치되지 않았다면 기본 Rendering Mode(IE7)으로 실행될 것입니다.
'프로그래밍 언어 > C++' 카테고리의 다른 글
[MFC] 대화상자에 파일 끌어놓기(드레그 앤 드롭) 기능 (0) | 2021.03.05 |
---|---|
winapi 또는 mfc에서 파일 포인터 위치 얻기 함수 (0) | 2020.10.19 |
Visual Studio 2017에서 WTL 설치 방법 (0) | 2018.05.01 |
c++17 'Train model' 로 변화를 꿈꾸다 (0) | 2017.11.17 |
C++17 표준에 추가 및 삭제된 라이브리리와 기타 사항 (0) | 2017.11.17 |