掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ポップアップメニューを出さないようにするには? (ID:103502)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんな感じにすればできますよ。 ※もし、あなたが初心者ならば理解するのにはちょっと難しいかもしれません。 ※間違えて、変なことをコードを書いてしまうとちょっと危ないので ソースコードも送ります。(これと同じ) ※尚、AddressOf演算子を使用しているのでVB5.0以上でないと動作致しません。 ■操作内容 メッセージをフックする(WM_RBUTTONDOWNメッセージを横流ししない) ■使用するコンポーネント テキストボックス(Text1) ■Formの処理 Private Sub Form_Load() 'Widowsメッセージをフックします Address = SetWindowLong(Text1.hWnd, GWL_WNDPROC,AddressOf MsgProc) End Sub Private Sub Form_Unload(Cancel As Integer) '終了処理 Call SetWindowLong(Text1.hWnd, GWL_WNDPROC, Address) End Sub ■標準モジュール '☆注意事項☆ '(1)絶対にデバックの「ステップイン、ステップオーバー」等で、実行しないでください。 '(2)絶対に「■」ボタンで終了しないでください。 ' (1)と(2) >>>最悪の場合、Windowsが起動しなくなる可能性があります。 '------------------------------------- 'ウインドウに関する情報を設定するAPI関数 '------------------------------------- 'hWnd:ウインドウのハンドル 'nIndex:定数(GWL_××参照) 'dwNewLong:設定する32ビット値 '戻り値:直前のウインドウプロシージャのアドレス Public Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long '--------------------------------------------- 'Windowsメッセージをウインドウプロシージャに渡す '--------------------------------------------- 'lpPrevWndFunc:ウインドウ関数へのポインタ 'hWnd:ウインドウのハンドル 'Msg:メッセージ 'wParam:パラメータ 'lParam:パラメータ Public Declare Function CallWindowProc Lib "USER32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long '---- '定数 '---- Public Const WM_RBUTTONDOWN = &H204 'マウス右ボタンを押した Public Const GWL_WNDPROC = (-4) 'ウインドウ関数 '----- '変数 '----- Public Address As Long 'ウインドウプロシージャのアドレス '--------------------------------------------------------- '■関数名 MsgProc '■用途 マウス右クリックを押した時なにもしない '■引数 nHandle: ウインドウのハンドル ' nMsg: Windowsのメッセージ ' wParam: メニューID ' lParam: パラメータ '---------------------------------------------------------- Public Function MsgProc(ByVal nHandle As Long, ByVal nMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 'マウス右クリックを押した時 If nMsg = WM_RBUTTONDOWN Then Exit Function End If MsgProc = CallWindowProc(Address, nHandle, nMsg, wParam, lParam) End Function
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.