by Sinryow » 2006年3月22日(水) 04:03
最近ActiveBasicを使い始めたものですが、
私はファイルを右クリックしたときに出るLhaplusやWinRARのような
ポップアップ形式のメニューを作りたいのですがプログラミングの初心者
であるためよくわかりません。
LhaplusやWinRARはDLLファイルを使っているという事はレジストリを調べて
わかったのですが。
どなたか教えて下さい。
LhaplusやWinRARは普段使っていないので分からないですが
エクスプローラとかでファイルを右クリックして出るようなポップアップでしたら,TrackPopupMenu関数を利用して出すことができます。
この時,表示するメニューはABのメニューエディタで作成できます。
メニューIDを「IDM_TestMenu」にしたとして,以下のような感じで記述します。(サンプルプログラムの内容をそのまま持ってきている点にご注意下さい)
コード: 全て選択
' ウィンドウ上で右クリックすることでメニューを表示することを想定
Sub MainWnd_RButtonDown(flags As Long, x As Integer, y As Integer)
Dim hSubMenu As HMENU, pt As POINTAPI
' メニューハンドルは hMenu_[メニューID] となるので,このことから
' 子メニューのハンドルをGetSubMenuで取得する。
hSubMenu = GetSubMenu(hMenu_IDM_TestMenu, 1)
' ポップアップメニューを表示する位置を求める。
pt.x = x
pt.y = y
ClientToScreen(hMainWnd, pt)
' ポップアップメニューを表示する。
TrackPopupMenu(hSubMenu, TPM_LEFTALIGN, pt.x, pt.y, 0, hMainWnd, ByVal NULL)
End Sub
サンプルを以下の場所にアップしておきます。
http://www.sinryow.net/hitori/TrackPopupMenu.lzh
※ウィンドウ上の適当な場所を右クリックするとポップアップメニューが出ます
参考ページ:
http://www.kumei.ne.jp/c_lang/sdk/sdk_44.htm
[quote]最近ActiveBasicを使い始めたものですが、
私はファイルを右クリックしたときに出るLhaplusやWinRARのような
ポップアップ形式のメニューを作りたいのですがプログラミングの初心者
であるためよくわかりません。
LhaplusやWinRARはDLLファイルを使っているという事はレジストリを調べて
わかったのですが。
どなたか教えて下さい。[/quote]
LhaplusやWinRARは普段使っていないので分からないですが
エクスプローラとかでファイルを右クリックして出るようなポップアップでしたら,TrackPopupMenu関数を利用して出すことができます。
この時,表示するメニューはABのメニューエディタで作成できます。
メニューIDを「IDM_TestMenu」にしたとして,以下のような感じで記述します。(サンプルプログラムの内容をそのまま持ってきている点にご注意下さい)
[code]' ウィンドウ上で右クリックすることでメニューを表示することを想定
Sub MainWnd_RButtonDown(flags As Long, x As Integer, y As Integer)
Dim hSubMenu As HMENU, pt As POINTAPI
' メニューハンドルは hMenu_[メニューID] となるので,このことから
' 子メニューのハンドルをGetSubMenuで取得する。
hSubMenu = GetSubMenu(hMenu_IDM_TestMenu, 1)
' ポップアップメニューを表示する位置を求める。
pt.x = x
pt.y = y
ClientToScreen(hMainWnd, pt)
' ポップアップメニューを表示する。
TrackPopupMenu(hSubMenu, TPM_LEFTALIGN, pt.x, pt.y, 0, hMainWnd, ByVal NULL)
End Sub[/code]
サンプルを以下の場所にアップしておきます。
http://www.sinryow.net/hitori/TrackPopupMenu.lzh
※ウィンドウ上の適当な場所を右クリックするとポップアップメニューが出ます
参考ページ:http://www.kumei.ne.jp/c_lang/sdk/sdk_44.htm