リッチテキストボックスの操作について

このQ&Aのポイント
  • Microsoft Visual C++ 2008 Express Editionで簡単なテキストエディターを作成
  • リッチテキストエディターをフォームに張り付けてファイルの入出力や編集機能を実装
  • 右クリック時に選択されていない場合に異なるコンテキストメニューを表示する方法
回答を見る
  • ベストアンサー

リッチテキストボックスの操作について

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

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.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;       }     } } といった具合です ・・・

19740828
質問者

お礼

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

関連するQ&A

  • テキストエディタで[google search]出来ませんか?

    テキストエディタで文字をハイライト表示して 右クリックメニューに[google search]という メニューを拡張できませんか?

  • フォルダ内にテキストをつくりたい

    エクスプローラ上でフォルダ内に新しいテキストをつくる場合、 左側のフォルダ上で右クリックを利用しコンテキストメニューのテキストソフトを利用すると、保存場所がそのフォルダでなく、直前の使用フォルダが表示されてしまい、その都度変更しなくてはなりません。 また右側のフォルダ内で右クリックをすると、コンテキストメニューの テキストソフトが表示されないため、「新規作成」のなかから「テキスト」を選ぶことでそのフォルダに保存できます。 そこで、そのフォルダ内にテキストを作成するのにワンクリックまたはキー操作で簡単にテキストをつくることができるようなソフトを知っていたら教えてください。後者でコンテキストメニューの最上部にテキストソフトが表示ができることでもいいのですが。 WindowsXp or Vista

  • テキストボックスでコンテキストメニューをでなくしたい

    テキストボックスで右クリックしたらコンテキストメニューがでますがこれをでなくしたいのですがどうしたらできますか? 過去ログは全部見たのですがどうもしっくり来なかったので質問させていただきました。m( _ _ )m よろしくお願いします。

  • ListCtrlでの文字列操作

    VC++2005のMFCでプログラムを学習しております。 ListCtrl上の行が選択された状態で、 右クリックメニューから行内の全ての文字列をクリップボードにコピーし、 列の文字列と文字列の間にタブが挿入された状態で、 貼り付けられるようにしたいのですが、どのように実装すれば良いのでしょうか? なお右クリックメニューのハンドラは実装済みです。 ご教示よろしくお願い致します。

  • 右クリックでポップアップメニューを表示したい

    Visual Basic6.0右クリック時にポップアップメニュー(コンテキストメニュー)を表示したいのですが、Webで調べてもよくわかりませんでした。メニューエディタを使って、メニューを作成することはできましたが、フォームの上段に表示されるメニューしか作成できません。MouseUpイベントを使用して右クリックを判別するところまではわかりましたが、肝心のポップアップメニューのメニューの作り方、使用方法をご存知の方いらっしゃいましたらご回答よろしくお願いします。

  • Excel2013 テキストボックスについて

    お世話になります。 テキストボックスに文字を入力した場合は、その文字を選択するとメニューが出るため、そこからフォントサイズの調整ができるのですが、直接文字を入力するのではなく、数式バーに=A1と入力し、A1セルの数値や文字等を参照してテキストボックスに表示させる方法だと、テキストボックス内の文字等を選択することができずフォントサイズを調整できませんでした。 テキストボックスを右クリックして、図の書式設定から探したのですが、フォントサイズを設定する項目が見当たりませんでした。 フォントサイズを調整するにはどうすればいいでしょうか。 よろしくお願いします。

  • ubuntuでテキストファイルが開けない

    よろしくお願い致します。 環境はUbuntu12.04をWindows7のVMware player上で動かしています。 ============================================================================== Windows上で作成したテキストファイル(sample.txt)を、 UbuntuのNautilusからダブルクリックして開こうとしているのですが、 ダブルクリックや「右クリック→Open」で開こうとしてもテキストファイルを開くことができません。 「右クリック→Open with」からエディタを選択すると、 正常に開くことができるのですが、 なぜダブルクリック、または「右クリック→Open」から開くことができないのでしょうか。 ============================================================================== エディタの問題かと思い、右クリックメニューのプロパティから、 デフォルトのエディタを変更してみても結果は同じでした。 (Openでは開けないが、Open withからだと開ける) また、文字コードが問題なのかと思ったのですが、 こちらもnkfコマンドでいろいろと変換してみても結果は同じでした。 この他の原因としてどんなことが考えられますでしょうか。 ご教授よろしくお願いします。

  • 透明なテキストエディタを探しています

    初めまして、oishiiochaと申します。 この度初めて質問させて頂きます。さて本題ですが、 入力画面の背景透過だけでなく メニューなどの外枠も完全に(半透明ではありません)透過できる テキストエディタ(付箋は不可)を探しています。 WindowsXP対応、フリーソフトだと嬉しいです。 フォントの書体、サイズ、色も設定できると尚良いです。 例えとしましては、 デスクトップ画面にそのまま文字だけが浮かび上がるような感じです。 「めもすけ」http://www.vector.co.jp/soft/winnt/writing/se393276.html の入力領域以外は右クリックで表示・非表示の切り替えができるようなものがあれば理想です。 全ての領域を半透明に設定できるテキストエディタはよくありますが、 文字まで半透明になってしまうのが見難いし、 半透明のメニューは私的にあまり好きではないのです。 どなたか条件に合うソフトをご存知の方がいらっしゃいましたら、 ご回答お願いできませんでしょうか。宜しくお願いします。

  • 任意ソフトのテキストボックスに自動入力したい

    常駐ソフトのひとつの処理です。 Webページのログイン画面とか、ソフト起動時のユーザ確認画面で、パスワードなどを入力するとき、そのテキストボックス(入力欄)を右クリック(2回)すると、あらかじめ登録している文字列がいくつか表示(コンテキスト表示というのかな)されて、その中のひとつを選択すると、そのテキストボックスに文字列が入力されるというソフトがあります。 たとえば、これです。 http://www2s.biglobe.ne.jp/~sahmaro/PasswdEx.htm こんなプログラムを自作したいのですが、どんな勉強をしたらよいのでしょうか。 VC++あたりで可能だと思いますが、手持ちのの本には常駐プログラムとか、右クリック監視の仕方など載ってません。 VC++、ど素人なんですが、プログラムのサンプルでもないでしょうか。

  • 【WEBページのタイトルをテキストに書き出したい】

    かなり大まかなご相談なのですが、どうすればいいか悩んでおりますため、どうかお知恵をお貸しください。 IEで表示しているページのURLを取得して、ローカルに置いてあるテキストに書き出したいと思っております。 (1)右クリックで出てくるコンテキストメニューに「URL保存」という項目を追加 (2)それを選択すると、右クリックしたWebページのURLが、テキストファイルに追加記入される。 という機能を作ろうと思っておりましたが、 (1)については 右クリックメニューを拡張できるフリーソフト(SHCML等)をいくつか利用してみましたが、 「IE上(WEB上)」で右クリックした時に出てくるメニューに、フリーソフトを使って登録した項目が出てきてくれません。 IE用のコンテキストメニューを追加するには、また違った作業が必要なのでしょうか。 (2)については、 ↑の右クリックで登録できる実行ファイルはexeかvbs拡張子、と以前どこかで読んだため(間違った情報かもしれませんが…) 当初VBSで作っていたのですが、どうしても「表示されているページ」を選んで取得することができませんでした。 JavaScriptであれば、http://www.openspc2.org/reibun/javascript/link/011/index.htmlこちらの ページなどを発見できたのですが、JavaScriptはWebページ作成時にHTML内に記載して使用したことしかなく、 これをどう”実行ファイル”として「右クリックで動作する」ようにしていいのかがわかりません…。 上記についてご教授いただけませんでしょうか。 最終的に【IEで表示しているページ(複数開いていた場合、選択したページのみ)のURLを取得して、 ローカルに置いてあるテキストに書き出す】という事が出来れば良いので、 やり方は上記にこだわりません。 もし”こうした方がいい””こうすればできる”などございましたら、アドバイスいただけますと嬉しいです。 色々と素人で、分からない事だらけのため、言葉足らずな質問になっておりましたらすみません。 宜しくお願いします。