<ライブラリ>
Menu.vbs
ウィンドウのメニュー表示のためのクラス『Menu』『PopupMenu』を提供します。
Menuクラスには、以下のパブリックメソッドがあります。
hMenu
引数はありません。
戻り値として、メニューハンドルを返します。
AppendPopupMenu(wIDNewItem,lpNewItem)
wIDNewItemで指定されたハンドルを持つポップアップメニューを、lpNewItem(文字列)で指定されたメニュー名で表示するように設定します。
戻り値はありません。
SetMenu(hWnd)
作成されたメニューを、hWndをハンドルに持つウインドウで表示するように設定します。
戻り値はありません。
PopupMenuクラスには、以下のパブリックメソッドがあります。
hMenu
引数はありません。
戻り値として、メニューハンドルを返します。
AppendMenu(wIDNewItem,lpNewItem)
lpNewItem(文字列)で指定されたメニューを追加します。wIDNewItemには、アイテムIDを整数値で、もしくはイベント関数を文字列で指定します。
戻り値として、WinFormクラスのRegisterEventで用いることの出来るアイテムIDを返します。
AppendSeparator
引数はありません。メニューにセパレータを追加します。
戻り値はありません。
AppendPopupMenu(wIDNewItem,lpNewItem)
wIDNewItemで指定されたハンドルを持つポップアップメニューを、lpNewItem(文字列)で指定されたメニュー名で表示するように設定します。
戻り値はありません。
サンプルコード
ウィンドウプロシージャのサンプルコードに以下のコードを追加すると、メニューが表示されます。
冒頭部分に追加
InitInstance関数に追加
実行結果

添付されているサンプルスクリプト、WinForm.vbsも参考にしてください。
Dim SFC
Set SFC=CreateObject("SfcMini.tools")
Execute SFC.Include("<Menu.vbs>")
Set SFC=CreateObject("SfcMini.tools")
Execute SFC.Include("<Menu.vbs>")
Menuクラスには、以下のパブリックメソッドがあります。
hMenu
引数はありません。
戻り値として、メニューハンドルを返します。
AppendPopupMenu(wIDNewItem,lpNewItem)
wIDNewItemで指定されたハンドルを持つポップアップメニューを、lpNewItem(文字列)で指定されたメニュー名で表示するように設定します。
戻り値はありません。
SetMenu(hWnd)
作成されたメニューを、hWndをハンドルに持つウインドウで表示するように設定します。
戻り値はありません。
PopupMenuクラスには、以下のパブリックメソッドがあります。
hMenu
引数はありません。
戻り値として、メニューハンドルを返します。
AppendMenu(wIDNewItem,lpNewItem)
lpNewItem(文字列)で指定されたメニューを追加します。wIDNewItemには、アイテムIDを整数値で、もしくはイベント関数を文字列で指定します。
戻り値として、WinFormクラスのRegisterEventで用いることの出来るアイテムIDを返します。
AppendSeparator
引数はありません。メニューにセパレータを追加します。
戻り値はありません。
AppendPopupMenu(wIDNewItem,lpNewItem)
wIDNewItemで指定されたハンドルを持つポップアップメニューを、lpNewItem(文字列)で指定されたメニュー名で表示するように設定します。
戻り値はありません。
サンプルコード
ウィンドウプロシージャのサンプルコードに以下のコードを追加すると、メニューが表示されます。
冒頭部分に追加
Execute SFC.Include("<Menu.vbs>")
InitInstance関数に追加
Dim MenuClass,PopupMenuClass1,PopupMenuClass2
set MenuClass=new Menu
set PopupMenuClass1=new PopupMenu
set PopupMenuClass2=new PopupMenu
Call MenuClass.AppendPopupMenu(PopupMenuClass1.hMenu,"Menu")
Call PopupMenuClass1.AppendMenu(11,"1-1")
Call PopupMenuClass1.AppendMenu(12,"1-2")
Call PopupMenuClass1.AppendSeparator
Call PopupMenuClass1.AppendPopupMenu(PopupMenuClass2.hMenu,"2nd Menu")
Call PopupMenuClass2.AppendMenu(21,"2-1")
Call PopupMenuClass2.AppendMenu(22,"2-2")
Call MenuClass.SetMenu(hWnd)
set MenuClass=new Menu
set PopupMenuClass1=new PopupMenu
set PopupMenuClass2=new PopupMenu
Call MenuClass.AppendPopupMenu(PopupMenuClass1.hMenu,"Menu")
Call PopupMenuClass1.AppendMenu(11,"1-1")
Call PopupMenuClass1.AppendMenu(12,"1-2")
Call PopupMenuClass1.AppendSeparator
Call PopupMenuClass1.AppendPopupMenu(PopupMenuClass2.hMenu,"2nd Menu")
Call PopupMenuClass2.AppendMenu(21,"2-1")
Call PopupMenuClass2.AppendMenu(22,"2-2")
Call MenuClass.SetMenu(hWnd)
実行結果

添付されているサンプルスクリプト、WinForm.vbsも参考にしてください。