62739


以下のサイトを参考に、VisualStudio2019でCHtmlViewを用いたアプリケーションを作成しました。  
<https://docs.microsoft.com/ja-jp/cpp/mfc/reference/creating-a-web-browser-
style-mfc-application?view=vs-2019>  
ウィザードで作成したアプリのOnInitialUpdateを以下のように修正して実行すると、

[code]

    // 修正前
    void CMFCApplication2View::OnInitialUpdate()
    {
        CHtmlView::OnInitialUpdate();
    
        Navigate2(_T("http://msdn.microsoft.com/ja-jp/visualc/default.aspx"),nullptr, nullptr);
    }
    
    // 修正後
    void CMFCApplication2View::OnInitialUpdate()
    {
        CHtmlView::OnInitialUpdate();
    
        // 引数が3つだとビルドエラーになるので、1つに変更
        Navigate2(_T("https://maps.google.co.jp/"));
    }
    
[/code]

キャプチャのように、互換表示の警告が出ます。  
[![画像の説明をここに入力](https://i.stack.imgur.com/BX4Pq.png)](https://i.stack.imgur.com/BX4Pq.png)

IEの互換表示は無効にしており、WindowsUpdateも実施済みです。  
尚、PCにはChromeもインストールしており、こちらが規定ブラウザという設定です。

この警告が出た後、スクリプトエラーが何度も出ますが、一応地図の閲覧はできます。  
警告やスクリプトエラーが出ないようにしたいのですが、何をすればよいでしょうか？

よろしくお願いします。

* * *

追記です。  
以下のように、ユーザエージェントを偽装しても同じ警告が出ます。

[code]

    void CMFCApplication2View::OnInitialUpdate()
    {
        CHtmlView::OnInitialUpdate();
    
        Navigate2(_T("https://maps.google.co.jp/"), NULL, NULL, _T("User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko "));
    }
    
[/code]

※上記ユーザエージェントは、実際にIE11でユーザエージェント確認サイトにて確認した内容です。


CC BY-SA 4.0
2020-02-03T04:21:16.027
62738
2020-02-03T08:07:17.293
2020-02-03T07:04:05.380
37695
37695
question
mfc
VisualStudio2019のCHtmlViewでGoogleMapを表示するとエラーが出る


CHtmlViewが使用しているWebBrowserコントロールは互換性のため既定でIE7モードで動作します。IE11モードで動作させたい場合は[Browser
Emulation](https://docs.microsoft.com/en-us/previous-
versions/windows/internet-explorer/ie-developer/general-
info/ee330730\(v=vs.85\)#browser-emulation)の説明に従いレジストリを設定する必要があります。

* * *

`HKEY_LOCAL_MACHINE` への書き込みは管理者で行う必要があります。`HKEY_CURRENT_USER`
であれば通常の権限で書き込み可能です。加えて、`HKEY_CURRENT_USER` は32bit /
64bit共通です。また`CHtmlView`作成前にレジストリ値が書き込まれていれば良いため、プログラム開始時に書き込めば十分です。


CC BY-SA 4.0
2020-02-03T05:10:19.277
62739
2020-02-03T08:07:17.293
2020-02-03T08:07:17.293
4236
4236
62738
answer


sayuriさんからの情報を元に、以下のレジストリを追加することで、警告が出なくなりました。

コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet
Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION  
名前：MFCApplication2.exe（<-作成したアプリのファイル名）、値：0x00002af9(11001)

※64bitマシンでしたので、  
「コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\～」ではなく  
「コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\～」に  
追加する必要がありました。

ありがとうございました。


CC BY-SA 4.0
2020-02-03T07:47:55.777
62743
2020-02-03T07:47:55.777
37695
62738
answer