コントロール上で右クリックでモーダルダイアログを表示させるには?

解決


くろねこ  2010-02-08 18:31:50  No: 71383  IP: [192.*.*.*]

はじめまして。

MFC  VC++6.0 WindowsXPです。


ボタンコントロール上で右クリックするとモーダルダイアログを表示させようとしているのですが、どうやったらいいのか分かりません。


回答よろしくお願いします。

編集 削除
tetrapod  2010-02-09 09:59:25  No: 71384  IP: [192.*.*.*]

その操作は Windows のユーザーインターフェイス標準に合致してない、つまり、
フツーのユーザーは
「特定ボタンコントロール上で右クリックしたら、他の場所で右クリックしたのと違う動作をする」
とは思いつきもしないと思うのだが、それでもやりたいわけ?

簡単に出来ない=するべきではないから難しくなっている、と考えよう。

不可能ではないが、すべきでないと思うわけだが、何か標準 UI に反したい理由でもある?

編集 削除
仲澤@失業者  2010-02-09 13:49:03  No: 71385  IP: [192.*.*.*]

tetrapodさんに賛成。
まぁ、ツールバー上のコントロールなんかは、右クリックを
親にリフレクトすることもありますけど、これは明示的に処理を
移管している状態ですね。

通常のボタンは右クリックを親に報告しませんから、結構大変な
実装になりそうです。
とりあえずWM_MOUSEACTIVATEは来るみたいなので、そこから
何が起こったか類推するしかないかもしれません。
WM_CONTEXTMENUが来るようだったらそれも使えるかもしれません。

編集 削除
くろねこ  2010-02-09 18:02:41  No: 71386  IP: [192.*.*.*]

>tetrapod様
>仲澤@失業者様

ご返答ありがとうございます。

普通はしないそうなのですね。

WM_CONTEXTMENUで試してみたらできたので、こちらを使わせてもらうことにしました。

ありがとうございました。

編集 削除