Web ブラウザー形式の MFC アプリケーションの作成
Web ブラウザー形式のアプリケーションは、インターネットの情報 (HTML やアクティブ ドキュメントなど) やイントラネットの情報のほか、ローカル ファイル システムとネットワーク上のフォルダーにもアクセスできます。アプリケーションのビュー クラスを CHtmlView から派生すると、ビューに WebBrowser コントロールが追加されるため、アプリケーションを Web ブラウザーとして使用できます。
MFC ドキュメント/ビュー アーキテクチャに基づいて Web ブラウザー アプリケーションを作成するには
「MFC アプリケーションの作成」の手順に従って操作します。
MFC アプリケーション ウィザードの [アプリケーションの種類] ページの [ドキュメント ビュー アーキテクチャ サポート] ボックスがオンになっていることを確認します。[シングル ドキュメント] または [マルチ ドキュメント] を選択できますが、[ダイアログ ベース] は選択しないでください。
[生成されたクラス] ページの [基本クラス] ドロップダウン メニューの [CHtmlView] を選択します。
スケルトン アプリケーションに組み込むほかのオプションを必要に応じて選択します。
[完了] をクリックします。
WebBrowser コントロールでは、ハイパーリンクと URL (Uniform Resource Locator ) による Web の閲覧をサポートします。このコントロールの履歴リストでは、参照済みのサイト、フォルダー、およびドキュメント間を前後に参照できます。移動、ハイパーリンク、履歴リスト、お気に入り、およびセキュリティは、WebBrowser コントロールによって直接処理されます。アプリケーションは、WebBrowser コントロールをアクティブ ドキュメント コンテナーとして使用し、アクティブ ドキュメントをホストします。したがって、Microsoft Excel スプレッドシートや Word 文書などの書式付きドキュメントを WebBrowser コントロール内で開き、その場で編集できます。WebBrowser コントロールは、ActiveX コントロール コンテナーとして機能することによって、ActiveX コントロールをホストすることもできます。
[!メモ]
WebBrowser ActiveX コントロールと CHtmlView を使用するには、Internet Explorer 4.0 以降がインストールされている Windows でアプリケーションを実行する必要があります。
CHtmlView は Microsoft Web ブラウザー コントロールを実装するだけなので、印刷のサポートはほかの CView の派生クラスとは異なります。WebBrowser コントロールではプリンターのユーザー インターフェイスと印刷が実装されます。つまり、CHtmlView では印刷プレビューがサポートされません。また、ほかの MFC アプリケーションとは異なり、フレームワークに印刷サポート関数 CView::OnPreparePrinting、CView::OnBeginPrinting、CView::OnEndPrinting などが用意されていません。
CHtmlView は Web ブラウザー コントロールのラッパー クラスとして機能し、アプリケーションに Web または HTML ページのビューを表示します。ウィザードによって、このビュー クラスの OnInitialUpdate 関数がオーバーライドされ、Microsoft Visual C++ Web サイトへのナビゲート リンクが用意されます。
void CWebView::OnInitialUpdate()
{
CHtmlView::OnInitialUpdate();
// TODO: This code navigates to a popular spot on the web.
// change the code to go where you'd like.
Navigate2(_T("http://www.msdn.microsoft.com/vstudio/"),NULL,NULL);
}
このサイトを独自のサイトに置き換えることもできます。また、メンバー関数 LoadFromResource を使用して、ビューの既定の内容として、プロジェクトのリソース スクリプトにある HTML ページを開くこともできます。次に例を示します。
void CWebView::OnInitialUpdate()
{
CHtmlView::OnInitialUpdate();
// TODO: This code navigates to a popular spot on the web.
// change the code to go where you'd like.
LoadFromResource(IDR_HTML1);
}