アプリ版:「スタンプのみでお礼する」機能のリリースについて

リッチテキストボックスの操作について
Microsoft Visual C++ 2008 Express Editionで、簡単なテキストエディターを作ってみたいと思っています。
初心者なので勉強がてらです。
リッチテキストエディターをフォームに張り付けて、ファイルの入出力や、簡単な編集機能を実装するまでは、うまくいきました。
さて、リッチテキストエディター上で右クリックをするとコンテキストメニューが表示されます。
ここで、文字がハイライトの状態にあるときは、その文字に対してのメニューがひょうじされます。
ここからです。
では、何も文字が選択されていないときに、右クリックしたとき、別のコンテキストメニューを表示したいのです。
コンテキストメニューを二つ作り、場合によって使い分けるといっても、右クリックのイベントハンドラーを作る事もできないし、お手上げです。
詳しい方、よろしくお願いします。

A 回答 (1件)

フォームに ・・・ ということは C++/CLIで.NET環境でやってるんですよね



でしたら ContextMenuStripを複数用意しておいて
RichTextBoxのMouseDownイベントの中で切り替えてやれば良いように思いますよ


contextMenuStrip1とcontextMenuStrip2がメンバーにあるとして

Private: System::Void richTextBox1_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
    // 右クリックのチェック
    if ( e->Button == System::Windows::Forms::MouseButtons::Right ) {
      // 選択文字列があるかのチェック
      if ( richTextBox1->SelectedText != "" ) {
        // メニューの切り替え
        richTextBox1->ContextMenuStrip = contextMenuStrip1;
      } else {
        // メニューの切り替え
        richTextBox1->ContextMenuStrip = contextMenuStrip2;
      }
    }
}

といった具合です ・・・
    • good
    • 0
この回答へのお礼

うまくできました!!
ありがとうございます!!

お礼日時:2010/07/25 16:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!