MDI子フォームを右クリックしてポップアップ表示中に、
マウス真中ボタンクリックで別のポップアップを表示したいのです。
メニューは親フォームに設定してあり、それを呼び出していいます。
親フォームのMouseDownでマウスの真中ボタンクリックを取ることが
出来たので、現在のポップアップ表示を消すためにエスケープキーの
キーイベントを発生させてポップアップを非表示にしてから、
SendMessageでWM_MBUTTONDOWNを子フォームに送りました。
ポップアップ表示は消えてマウスダウンイベントまでは起きているのに、
ポップアップが表示されません。
どのようにしたらポップアップ表示中に真中ボタンクリックで別のポップアップを表示できるのでしょうか?
VB6.0
>ポップアップ表示は消えてマウスダウンイベントまでは起きているのに、
真中ボタン(マウスホイール)クリックをイベントで取得できてると
いう事ですか?ならそこでポップアップメニューの表示をするだけ
だと思いますが?。
簡単に左右のボタンクリックで違うポップアップメニューの表示して
テストしましたが、難なく成功しました。
えーっと、左右のMouseDownイベントは子フォームでも取れるので、既にポップアップメニューが表示してあっても新しくポップアップメニューを開くことができるのはテスト済みでした。
でもなぜか、真中ボタンに関しては既にポップアップメニューが表示してあると、子フォームではMouseDown取れないのです。で、仕方がなく前述のとおりのやり方をしてみているのです。が、やっぱりポップアップメニューは出てきません。
なにもポップアップメニューが開いていない状態での、真中ボタンのクリックによるポップアップメニュー表示は出来るんですが・・・。
真中クリックのときはマウスダウンイベントでsendkey でESCを送って。
マウスアップイベントでポップアップ表示させたらいかがでしょうか。
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case Button
Case 1
Me.PopupMenu ポップアップ1
Case 2
Me.PopupMenu ポップアップ2
Case 4
SendKeys "{ESC}"
End Select
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case Button
Case 4
Me.PopupMenu ポップアップ2
End Select
End Sub
マウスダウンでエスケープキー、マウスアップでポップアップ表示で見事できましたっ!
本当にありがとうございました(^^)
ツイート | ![]() |