エディットコントロールの右クリックメニューに項目を追加したい – プログラミング – Home

エディットコントロールの右クリックメニ...
 
通知
すべてクリア

エディットコントロールの右クリックメニューに項目を追加したい


あき21
 あき21
(@あき21)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

エディットコントロールを右クリックしたときに表示されるメニューに項目を追加し、
それを処理したいのですが方法がわかりません。
どなたかご存知の方、ご教授をお願いします。

エディットコントロールのメッセージにてWM_INITMENUPOPUPを捕らえようとしましたが
捕らえられませんでした。
メニューの既存項目はそのまま使用したいと思いますが、既存を自前で用意することは
他言語(日本語以外)対応がしやすいように避けたいです。

開発環境VS2003・OSはXP(SP3)・MFCを使用していますが、SDKで
もかまいません。(ターゲットOSは95、98、XPです)
よろしくお願いします。


引用解決済
トピックタグ
bun
 bun
(@bun)
ゲスト
結合: 24年前
投稿: 761
 

エディットコントロールの右クリックは、たしか、
IsDialogMessage()
にて処理されるはずです。

エディットボックスでなく、親ウィンドウ(ダイアログなのかな?)側で
捕らえてみてはいかがでしょう。

実際には試していないので、的はずれなことを言っているかもしれません。

その場合は、すいません。


返信引用
あき21
 あき21
(@あき21)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

bunさん 大変遅くなりましたが、回答ありがとうございました。

>エディットコントロールの右クリックは、たしか、
> IsDialogMessage()
>にて処理されるはずです。
>
>エディットボックスでなく、親ウィンドウ(ダイアログなのかな?)側で
>捕らえてみてはいかがでしょう。

試してみましたが、上手くいきませんでした。
(今回対象としているエディットコントロールの親ウィンドウはダイアログです。その
ダイアログはSDIアプリのメニューより表示させています。)
いろいろ試しましたが、あのメニューのハンドルを取得する方法は発見できませんでし
た。
別の方法を検討したいと思います。


返信引用
bun
 bun
(@bun)
ゲスト
結合: 24年前
投稿: 761
 

参考までに、Spy++での調査結果を報告しておきます。
メニューが表示された直後に、
WM_ENTERIDLE
メッセージが来るようです。

そのメッセージにメニューのウィンドウハンドルが載ってきます。
(MFC使用だからCWnd::OnEnterIdle()の第2引数かな)
そのウィンドウから、GetMenu()したら、うまくいくのかな?

こっちでも試してみます。


返信引用
bun
 bun
(@bun)
ゲスト
結合: 24年前
投稿: 761
 

残念、駄目ですね。
GetMenu()したらNULLが返ってきました。


返信引用
あき21
 あき21
(@あき21)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

bunさん 確認までしていただき、ありがとうございます。

>残念、駄目ですね。
>GetMenu()したらNULLが返ってきました。

あのハンドルの取得は不可能なのかな?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました