SDI と MDI の Fortran Windows アプリケーションでのメニューとダイアログの使用

この節は,以下のトピックについて説明しています。

メニューの作成

Fortran Windows AppWizard を使って新しい SDI または MDI アプリケーションを作成する時,基本メニューバーが作成されます。基本メニューバーは,Windows アプリケーションに共通なメニュー項目の多くが含まれています。Developer Studio のリソース・エディタの 1 つであるメニュー・エディタを使って,基本メニューを修正したり,新しいメニューを作成することができます。

新しいメニュー・リソース (メニューバー) を作成するには,以下のようにします。

  1. 「Insert」メニューから「Resource」をクリックします。

  2. リソース・タイプから「Menu」を選択します。

メニューバーは,複数のメニュー名で構成されています。各メニュー名は,1 つ以上の項目で構成されています。メニュー・エディタを使って副メニューを作成することができます (ポップアップから「Property」を選択します)。

既存のメニューを編集するには,以下のようにします。

  1. 「ResourceView」を選択します。

  2. リソース・タイプの一覧のメニュー項目を拡張します。

  3. メニュー名をダブルクリックします。

リソース・エディタについての詳細は,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 引数には以下のものが含まれます。

たとえば,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 のどちらかを使うことができます。たとえば,Win32 API を使ってダイアログボックスを作成した場合,このダイアログボックスと動作する Visual Fortran ダイアログ・ルーチンを使うことはできません。

Fortran Windows AppWizard が生成したコードは,「About」ダイアログボックスを表示するために Win32 API を使っていることに注意してください。

関連情報