最近ActiveBasicを使い始めたものですが、
私はファイルを右クリックしたときに出るLhaplusやWinRARのような
ポップアップ形式のメニューを作りたいのですがプログラミングの初心者
であるためよくわかりません。
LhaplusやWinRARはDLLファイルを使っているという事はレジストリを調べて
わかったのですが。
どなたか教えて下さい。
LhaplusやWinRARのようなDLL
Re: LhaplusやWinRARのようなDLL
LhaplusやWinRARは普段使っていないので分からないですが最近ActiveBasicを使い始めたものですが、
私はファイルを右クリックしたときに出るLhaplusやWinRARのような
ポップアップ形式のメニューを作りたいのですがプログラミングの初心者
であるためよくわかりません。
LhaplusやWinRARはDLLファイルを使っているという事はレジストリを調べて
わかったのですが。
どなたか教えて下さい。
エクスプローラとかでファイルを右クリックして出るようなポップアップでしたら,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
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
Re: LhaplusやWinRARのようなDLL
恐らくstr200さんの実現したいことはエクスプローラーの右クリック>> LhaplusやWinRARは普段使っていないので分からないですが最近ActiveBasicを使い始めたものですが、
> 私はファイルを右クリックしたときに出るLhaplusやWinRARのような
> ポップアップ形式のメニューを作りたいのですがプログラミングの初心者
> であるためよくわかりません。
> LhaplusやWinRARはDLLファイルを使っているという事はレジストリを調べて
> わかったのですが。
> どなたか教えて下さい。
> エクスプローラとかでファイルを右クリックして出るようなポップアップでしたら,TrackPopupMenu関数を利用して出すことができます。
メニューに独自のメニューを追加したいということだと思います。
そうだとすると、この実現にはレジストリをいじるだけでできます。
と言ってもレジストリをいじるのは知識がないと危ないです。&僕はよくわかりません。
予想ではHKEY_CLASSES_ROOTか
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
あたりの"*"のところに全てのファイルに共通、".txt"等にその拡張子特有の
メニューを追加させて処理させるのだと思うのですが・・・。
このへんはレジストリに詳しい人の意見を聞いたほうがよろしいです。