すべてのWindowsコンピュータにはデフォルトでインストールされているので、つまりWebページを表示するために使用するプログラムを作成したいと思います。プログラムをアドレスバーのない単純なウィンドウにしたいと思います。また、プログラムに閉じるボタン、最大化ボタン、最小化ボタンを追加したいと思います。また、プログラムのアイコンを追加したいです!どうすればそれができますか?
1 に答える
MFC を使用すると仮定すると、これはかなり簡単です。AppWizard で MFC アプリケーションを作成します。AppWizard オプションの最初のページで、"Application Style" を "MFC Standard" に変更し、(おそらく) "Single Document" プログラムに変更します。最後のページで、ビューの基本クラスを CView から CFormView に変更します。
プロジェクトのリソース ビューに移動し、IDD_<project_name>_FORM
ダイアログを編集します。最初は、「ここにコントロールを挿入」について何かを言っている静的コントロールが含まれています。その静的コントロールを削除し、フォームを右クリックして [ActiveX コントロールの挿入...] を選択します。ActiveX コントロールのリストが表示されます。リストから「Microsoft Web Browser」を選択します。
これにより、(小さな) Web ブラウザがウィンドウに表示されます (おそらく、ウィンドウをいっぱいにするためにブラウザを引き延ばしたいと思うでしょう)。コントロールを右クリックし、[変数の追加...] を選択します。これにより、変数の名前を入力する必要があるダイアログが表示されます (たとえば、「browser」という名前を付けることができます)。
次に、クラス ビューに切り替えて、ビュー クラスを選択します。下のペインで、「OnInitialUpdate」をダブルクリックします。その関数に対して既に存在するコードの後に、次のような行を追加します。
browser.Navigate("http://www.google.com", NULL, NULL, NULL, NULL);
[明らかに、「http://www.google.com」を表示したい Web サイトの URL に置き換えます]。
コンパイルして実行すると (コンピュータがインターネットに接続されているなどの前提で)、起動時に選択した Web ページが開きます。
また、ビューに WM_SIZE のハンドラーを追加し、ユーザーがウィンドウのサイズを変更したときにウィンドウを埋めるようにコントロールのサイズを変更することもできます。コントロールが完全に初期化される前にウィンドウが WM_SIZE メッセージを受け取るため、これは少し複雑です。そのため、通常は「control_valid」などの名前の bool 変数を追加します。ビューのコンストラクターで「false」に初期化します。「Navigate」呼び出しの後の OnInitialUpdate コードで、「valid = true;」を追加します。次に、WM_SIZE ハンドラーで、(有効な) 場合にのみコントロールのサイズを変更します。たとえば、次のようになります。
void Cbrowse_fixedView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
// This is the block of code we added:
if(valid) {
CRect rect;
GetClientRect(&rect);
m_browser.MoveWindow(&rect);
}
}
これにより、ユーザーがアプリケーションのウィンドウのサイズを変更すると、ブラウザー コントロールのサイズが変更され、常にウィンドウがいっぱいになります。