この節は,以下のトピックについて説明しています。
Fortran Windows AppWizard を使って新しい SDI または MDI アプリケーションを作成する時,基本メニューバーが作成されます。基本メニューバーは,Windows アプリケーションに共通なメニュー項目の多くが含まれています。Developer Studio のリソース・エディタの 1 つであるメニュー・エディタを使って,基本メニューを修正したり,新しいメニューを作成することができます。
新しいメニュー・リソース (メニューバー) を作成するには,以下のようにします。
「Insert」メニューから「Resource」をクリックします。
リソース・タイプから「Menu」を選択します。
メニューバーは,複数のメニュー名で構成されています。各メニュー名は,1 つ以上の項目で構成されています。メニュー・エディタを使って副メニューを作成することができます (ポップアップから「Property」を選択します)。
既存のメニューを編集するには,以下のようにします。
「ResourceView」を選択します。
リソース・タイプの一覧のメニュー項目を拡張します。
メニュー名をダブルクリックします。
リソース・エディタについての詳細は,Visual C++ ユーザーズ・ガイドのリソース・エディタの章を参照してください。
Fortran アプリケーションでメニューバーを使用するには,メニュー・リソースをロードし,アプリケーションの主ウィンドウが作成された時にそれが使えるようにしなければなりません。これを行うためのコードは,Fortran Windows AppWizard が自動的に生成します。メニュー・リソースをロードするコードは以下のとおりです。
ghMenu = LoadMenu(hInstance, LOC(lpszMenuName))
返されるメニュー・ハンドルは,CreatWindowEx の呼び出しで使用されます。
ghwndMain = CreateWindowEx( 0, lpszClassName, & lpszAppName, & INT(WS_OVERLAPPEDWINDOW), & CW_USEDEFAULT, & 0, & CW_USEDEFAULT, & 0, & NULL, & ghMenu, & hInstance, & NULL & NULL)
ユーザーがメニューから項目を選択した時,Windows は WM_COMMAND メッセージを主ウィンドウに送ります。WM_COMMAND メッセージに対する wParam 引数には以下のものが含まれます。
下位ワードは,メニュー項目の識別子を指定します。
上位ワードは,メッセージがメニュー項目からの場合には 0, メッセージがアクセラレータ・キーの結果の場合には 1 が指定されます。この 2 つの場合を区別することは通常重要ではありませんが,以下の例のように下位ワードのみを比較するようにしなければなりません。
たとえば,Fortran Windows AppWizard が生成した主ウィンドウ手続からの以下のコードは,「File」メニューの「Exit」項目と「Help」メニューの「About」項目からの WM_COMMAND を処理します。
! WM_COMMAND: user command case (WM_COMMAND) select case ( IAND(wParam, 16#ffff ) ) case (IDM_EXIT) ret = SendMessage( hWnd, WM_CLOSE, 0, 0 ) MainWndProc = 0 return case (IDM_ABOUT) lpszName = "AboutDlg"C ret = DialogBoxParam(ghInstance,LOC(lpszName),hWnd,& LOC(AboutDlgProc), 0) MainWndProc = 0 return ...
メニューの使用の高度な技術に関しては,『Platform SDK』オンライン・ドキュメントの「User Interface Services」の「Windows User Interface, Resources, Menus」を参照してください。
SDI または MDI アプリケーションでのダイアログの使用
ダイアログを使用する Fortran Windows SDI または MDI アプリケーションは,以下の選択肢を持っています。
Visual Fortran ダイアログ・ルーチン
ダイアログボックスを生成するための Win32 API ルーチン
特定のダイアログボックスに対して,Visual Fortran ダイアログ・ルーチンまたは,Win32 ダイアログボックス API のどちらかを使うことができます。たとえば,Win32 API を使ってダイアログボックスを作成した場合,このダイアログボックスと動作する Visual Fortran ダイアログ・ルーチンを使うことはできません。
Fortran Windows AppWizard が生成したコードは,「About」ダイアログボックスを表示するために Win32 API を使っていることに注意してください。
関連情報
Visual Fortran ダイアログ・ルーチンの使用に関しては,「ダイアログの使用」を参照してください。
Win32 API の使用に関しては,『Platform SDK』オンライン・ドキュメントの「User Interface Services」の「Windows User Interface, Windowing, Dialog Boxes」を参照してください。