ポップアップ表示中に、真中ボタンクリックで別のポップアップを表示したい

解決


ひよこ  2005-03-04 14:26:54  No: 120060  IP: [192.*.*.*]

MDI子フォームを右クリックしてポップアップ表示中に、
マウス真中ボタンクリックで別のポップアップを表示したいのです。
メニューは親フォームに設定してあり、それを呼び出していいます。

親フォームのMouseDownでマウスの真中ボタンクリックを取ることが
出来たので、現在のポップアップ表示を消すためにエスケープキーの
キーイベントを発生させてポップアップを非表示にしてから、
SendMessageでWM_MBUTTONDOWNを子フォームに送りました。
ポップアップ表示は消えてマウスダウンイベントまでは起きているのに、
ポップアップが表示されません。

どのようにしたらポップアップ表示中に真中ボタンクリックで別のポップアップを表示できるのでしょうか?

VB6.0

編集 削除
特攻隊長まるるう  2005-03-04 17:23:01  No: 120061  IP: [192.*.*.*]

>ポップアップ表示は消えてマウスダウンイベントまでは起きているのに、
真中ボタン(マウスホイール)クリックをイベントで取得できてると
いう事ですか?ならそこでポップアップメニューの表示をするだけ
だと思いますが?。
簡単に左右のボタンクリックで違うポップアップメニューの表示して
テストしましたが、難なく成功しました。

編集 削除
ひよこ  2005-03-04 18:46:00  No: 120062  IP: [192.*.*.*]

えーっと、左右のMouseDownイベントは子フォームでも取れるので、既にポップアップメニューが表示してあっても新しくポップアップメニューを開くことができるのはテスト済みでした。
でもなぜか、真中ボタンに関しては既にポップアップメニューが表示してあると、子フォームではMouseDown取れないのです。で、仕方がなく前述のとおりのやり方をしてみているのです。が、やっぱりポップアップメニューは出てきません。
なにもポップアップメニューが開いていない状態での、真中ボタンのクリックによるポップアップメニュー表示は出来るんですが・・・。

編集 削除
赤ペン  2005-03-05 20:11:41  No: 120063  IP: [192.*.*.*]

真中クリックのときはマウスダウンイベントで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

編集 削除
ひよこ  2005-03-07 10:09:37  No: 120064  IP: [192.*.*.*]

マウスダウンでエスケープキー、マウスアップでポップアップ表示で見事できましたっ!
本当にありがとうございました(^^)

編集 削除