HIDEといいます。よろしくお願いします。
環境はVC++6.0 MFCを使っています。
質問なのですが、
まず、ダイアログ上に入力不可に設定したエディットを作成しました。
そのエディットは入力不可になっているのですが、
エディット上で右クリックをすると、
切り取り、コピー、貼り付け等のポップアップメニューが表示されます。
このポップアップメニューの貼り付けを淡色に設定したいのです。
どのようにすれば良いのでしょうか?
自作でメニューを作成すれば良いのかもしれませんが、貼り付け以外の機能は
そのまま使用したので、何か方法があれば御教授ください。
他にもっと簡単な方法があるかどうか分かりませんけど、
自作メニューならそんなに難しくないですよ。
機能は既にあるものを使うので、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();
rayさん、返答ありがとうございます。
エディット以外(ダイアログ上)では、既に自作のメニューを出しているので、
出来ればデフォルトの(作らなくても出る奴)メニューを
を制御できるとうれしいのですが、方法は無いのかなぁ?
もしお解りになる方がいらっしゃれば、よろしくお願いします。
どこかで WM_INITMENUPOPUP を捕まえられれば、そこで加工できるんじゃないでしょう
か。
ですが、OSによってメニューアイテムのインデックス位置やコマンドIDが異なるか
もしれません。
メニューなら、CFrameWnd::m_bAutoMenuEnableメンバ変数をFALSEにすれば淡色に
なるみたいですけど…。あまり参考にならないかな?