メニュー コマンドの説明をステータス バーに表示する

オープンソース形式でコードを共有するフォーラムです。お役立ちコード、あなたも投稿してみませんか?
返信する
メッセージ
作成者
Toshi
記事: 98
登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
連絡する:

メニュー コマンドの説明をステータス バーに表示する

#1 投稿記事 by Toshi »

RAD ツールで作成したメニューのコマンドを選択した時に、ステータス バーに任意の文字列を表示させます。
タイトル バーを右クリックした時のメニューでも同じことが出来ます。
MainWndProc の部分を↓この様に置き換えてください。

・ステータス バーのハンドルは hStatWnd です。
・メニューのハンドルは、この場合メニューを RAD ツールで "MainMenu" という名前で作成した為 hMenu_MainMenu となっていますが、勿論任意です。
・IDM_*** の部分はメニュー エディタで決定した ID を使用してください。
・SC_*** の部分は ID を変更する必要はありません。
・下の方にある SendMessage API の第 3 引数の SBT_POPOUT は任意のスタイルにすることが出来ます。

コード: 全て選択


'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数

Function MainWndProc(hWnd As DWord, dwMsg As DWord, wParam As DWord, lParam As DWord) As DWord
	' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。

	Dim MenuMes As BytePtr

	If dwMsg=WM_MENUSELECT Then
		If HIWORD(wParam)=&HFFFF And lParam=NULL Then 
			SendMessage(hStatWnd,SB_SIMPLE,FALSE,0)
		Else
			SendMessage(hStatWnd,SB_SIMPLE,TRUE,NULL)
			If lParam=hMenu_MainMenu Then
				Select Case LOWORD(wParam)
					Case 0
						MenuMes="ファイル"
					Case 1
						MenuMes="ヘルプ"
				End Select
			Else
				Select Case LOWORD(wParam)
					Case IDM_NEW
						MenuMes="新規作成"
					Case IDM_OPEN
						MenuMes="開く"
					Case IDM_SAVE
						MenuMes="上書き保存"
					Case IDM_SAVEAS
						MenuMes="名前を付けて保存"
					Case IDM_EXIT
						MenuMes="終了"
					Case IDM_ABOUT
						MenuMes="バージョン情報"
					Case SC_CLOSE
						MenuMes="閉じる"
					Case SC_MAXIMIZE
						MenuMes="最大化"
					Case SC_MINIMIZE
						MenuMes="最小化"
					Case SC_RESTORE
						MenuMes="元のサイズに戻す"
					Case SC_MOVE
						MenuMes="移動"
					Case SC_SIZE
						MenuMes="サイズ変更"
					Case Else
						MenuMes=""
				End Select
			End If
			SendMessage(hStatWnd,SB_SETTEXT,255 Or SBT_POPOUT,MenuMes)
		End If
	End If

	' イベントプロシージャの呼び出しを行います。
	MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Function

返信する