2011. 7. 23. 20:50

CHtmlView / CDHtmlDialog 에서 MSHTML 엔진 버전 선택하기

IE8, 9 가 출시되었음에도 불구하고 CHtmlView 와 CDHtmlDialog 의 MSHTML 엔진 버전은 6 또는 7 버전을 사용합니다. MSDN 에는 호환성의 이유로  디폴트로 IE7 Standards Mode 로 실행된다고 명시하고 있습니다.

다음 방법을 이용하여 MSHTML 엔진의 버전을 IE8 또는 IE9 로 명시할 수 있습니다.

HTML 문서에 지정하는 방법

아래처럼 html 에 meta 태그를 선언하면 됩니다.

<!DOCTYPE html>
<html>
  <head>
  	<meta http-equiv="X-UA-Compatible" content="IE=9" >


레지스트리를 이용하는 방법

IE8 Standards Mode 로 실행하는 방법 (IE9 는 9000 입니다)

[(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApplication.exe" = dword 8000 (Hex: 0x1F40)


IE7 Standards Mode 로 실행하는 방법

[(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApplication.exe" = dword 7000 (Hex: 0x1B58)


IE8 Standards Mode 로 강제하는 방법

[(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApplication.exe" = dword 8888 (Hex: 0x22B8)


다음은 T-Set (제가 실험적으로 개발한) 의 Result View 에서 IE9 모드를 지정한 후 HTML 5 의 canvas 요소를 사용한 예입니다. (HTML5 의 canvas 요소는 IE9 에서만 지원되는 것 같습니다.)


다음은 위 그래프 HTML 소스입니다.


위 예제에 사용된 RGraph(http://www.rgraph.net/) 는 상업적 사용시에는 무료가 아니므로 사용에 주의하시기 바랍니다.

참고: 
http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx
http://msdn.microsoft.com/en-us/library/ee330730%28VS.85%29.aspx#browser_emulation  
http://stackoverflow.com/questions/4612255/regarding-ie9-webbrowser-control