ポップアップメニューのリスト制御 – プログラミング – Home

ポップアップメニューのリスト制御
 
通知
すべてクリア

ポップアップメニューのリスト制御


HIDE
 HIDE
(@HIDE)
ゲスト
結合: 24年前
投稿: 11
Topic starter  

HIDEといいます。よろしくお願いします。

環境はVC++6.0 MFCを使っています。
質問なのですが、
まず、ダイアログ上に入力不可に設定したエディットを作成しました。
そのエディットは入力不可になっているのですが、
エディット上で右クリックをすると、
切り取り、コピー、貼り付け等のポップアップメニューが表示されます。
このポップアップメニューの貼り付けを淡色に設定したいのです。
どのようにすれば良いのでしょうか?

自作でメニューを作成すれば良いのかもしれませんが、貼り付け以外の機能は
そのまま使用したので、何か方法があれば御教授ください。


引用解決済
トピックタグ
ray
 ray
(@ray)
ゲスト
結合: 21年前
投稿: 2
 

他にもっと簡単な方法があるかどうか分かりませんけど、
自作メニューならそんなに難しくないですよ。
機能は既にあるものを使うので、MFCなら、
カットー>ID_EDIT_CUT
コピーー>ID_EDIT_COPY
のようにIDを指定するだけでその機能が自動的に実装されます。
参考(右クリック時など):

// Show popup menu
CMenu menu;
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING | MF_ENABLED,
ID_EDIT_UNDO, &Undo\tCtrl+Z);
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING | MF_ENABLED,ID_EDIT_CUT, Cu&t\tCtrl+X);
menu.AppendMenu(MF_STRING | MF_ENABLED,ID_EDIT_COPY, &Copy\tCtrl+C);
menu.AppendMenu(MF_STRING |
MF_ENABLED,ID_EDIT_PASTE, &Paste\tCtrl+V);
menu.AppendMenu(MF_STRING | MF_ENABLED,ID_EDIT_CLEAR, &Delete\tDel);
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING | MF_ENABLED,ID_EDIT_SELECT_ALL, Select
A&ll\tCtrl+A);

ClientToScreen(&point);
menu.TrackPopupMenu(
TPM_LEFTALIGN |
TPM_RIGHTBUTTON,
point.x, point.y,
this
);
menu.DestroyMenu();


返信引用
HIDE
 HIDE
(@HIDE)
ゲスト
結合: 24年前
投稿: 11
Topic starter  

rayさん、返答ありがとうございます。

エディット以外(ダイアログ上)では、既に自作のメニューを出しているので、
出来ればデフォルトの(作らなくても出る奴)メニューを
を制御できるとうれしいのですが、方法は無いのかなぁ?
もしお解りになる方がいらっしゃれば、よろしくお願いします。


返信引用
渋木宏明(ひどり)
 渋木宏明(ひどり)
(@渋木宏明(ひどり))
ゲスト
結合: 21年前
投稿: 33
 

どこかで WM_INITMENUPOPUP を捕まえられれば、そこで加工できるんじゃないでしょう
か。

ですが、OSによってメニューアイテムのインデックス位置やコマンドIDが異なるか
もしれません。


返信引用
ray
 ray
(@ray)
ゲスト
結合: 21年前
投稿: 2
 

メニューなら、CFrameWnd::m_bAutoMenuEnableメンバ変数をFALSEにすれば淡色に
なるみたいですけど…。あまり参考にならないかな?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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