メモ帳で選択テキストの右クリックメニューの作成方法

[戻る]
risu 2005/04/12(火) 15:15:52
WIN2K、VC6.0を使用してプログラム作成しています。

メモ帳または、ワードパッドで表示されているテキストを選択した時の右クリックメニ
ューに、メニューを追加する方法がいろいろと調べたのですが見つからないでいます。

この方法がわかる本またはサイトをご存知の方がおられましたら、教えてください。
よろしくお願いいたします。

2005/04/12(火) 17:14:24
記述のメニューはPop Menuのことですか?そうだったらResourceViewでMenuを新規してIDを設
定してから関数を加えるといい。例えばMenuに一つの項目のIDがID_C1、もう一つはID_C2の場
合。下の例も参考してください。
void CPopMenuView::OnC1() 
{
    AfxMessageBox("command1");
}

void CPopMenuView::OnC2() 
{
    AfxMessageBox("command2");
}

void CPopMenuView::OnRButtonDown(UINT nFlags, CPoint point) 
{
    CMenu menu;
    menu.LoadMenu(IDR_POPUP);
    CMenu* pM=menu.GetSubMenu(0);
    CPoint pt;
    GetCursorPos(&pt);
    pM->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);
    CView::OnRButtonDown(nFlags, point);
}

Ban 2005/04/12(火) 17:39:40
OnRButtonDown よりは、OnContextMenu の方がより適切だと思います。


それはさておき、risu さんのご質問は
「自分の作成しているアプリ(エディタ)にメニューを追加したい」のではなく、
「既存のノートパッドに外から動的にメニューを追加したい」
という意味なんじゃないかと言う気もしますが。

risu 2005/04/13(水) 11:45:50
王さん、Banさん、レスありがとうございます。

詳細な方法を教えていただいたのですが、
質問の書き方が悪かったのかもしれません。
すいません。

Banさんの言われた、
「既存のノートパッドに外から動的にメニューを追加したい」
の方が自分のいいたかった質問内容です。

お手数かけまして、すいません。
方法がおわかりでしたら教えていただきたいです。
よろしくお願いいたします。

Ban 2005/04/13(水) 12:48:14
これが例えばエクスプローラに〜とかなら、予め手段が用意されているのでそれで対応できますが、
標準のノートパッドやワードパットにはそういう機能は多分、用意されてないと思います。

なので、汎用的にするには外からフックでもかけるくらいしかないと思います。

http://forums.belution.com/ja/vc/000/299/33.shtml


とまれ、何が最終的に実現したい要件なのかわかりませんが、
似非ノートバッドくらいなら MFC で CEditView あたりを使えば割と簡単にできると思いますし、
ワードパッドを CRichEditView から作るのはちと面倒でしょうが、
wordpad.zip などというそのままなサンプルもついてますし(※VC6 にもあるかは未確認)。
その2ソフト限定でいいなら、自作版を作ってメニューを追加した方が楽かもしれません。

risu 2005/04/13(水) 17:01:05
[[解決]]
Banさん、ありがとうございます。
サイトのほう参考になりました。

最終的には、
選択したテキスト(calltoリンクされていない番号)を右クリックしてメニューを選択す
ることで、
NetMeeting等で電話をかけたいと思っています。

これで少しがんばってみます。
またつまづきましてどうにもならなくなりました時は、
またお力添えいただければと思います。
ありがとうございました。

古いスレッドには追加発言できません。