• ベストアンサー

VC++でツリーコントロールの文字色変更

VC++.NETを使い始めたばかりの初心者です。 ツリーコントロールで登録した文字列を 行ごとに文字色の変更をしたいのですが やり方がわからなく困っています。 WM_NOTIFYメッセージを横取りして clrTextメンバに色を設定をしてみたのですが、 アイテムのダブルクリックやマウス右クリック メニューが使えなくなってしまいました。 ほかのやり方でもかまいませんので ご存知の方は、ご教授をよろしくお願いします。

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1
参考URL:
http://hp.vector.co.jp/authors/VA016117/treeview.html
cor_panda
質問者

お礼

ありがとうございました。 参考になり無事に解決しました。

関連するQ&A

  • VC6++のツリービューについて

    VC6++のツリービューについて質問させていただきます。 ツリービューで以下のようなリストを作成した場合、リストをクリックした時に文字色もくしは、文字の背景色を変更したいと考えております。何かよい方法があればお教え頂ければと思います。 よろしくお願いいたします。 【ツリービューのイメージ】 下のようなリストを作成後、”きゅうり”をクリックしたら、”きゅうり”の文字列の色が変わり、”みかん”をクリックしたら、”みかん”の文字列の色が変わるイメージです。 野菜  |   ― きゅうり  |     ― レタス 果物  |   ― みかん  |   ― ブドウ  

  • VC + + 2013

    VC++2013でメニューバーを2行にして、 その上にボタンやリストボックスなどのコントロールを置きたいのですが、方法はありますでしょうか?

  • ListCtrlでの文字列操作

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

  • WM_LBUTTONDBLCLKについて

    マウスの左ボタンをダブルクリックしようとおもっているのですがWM_LBUTTONDBLCLKを使ったのですが、ダブルクリックしても全然反応しません。どうしてでしょうか? 環境はVC++2005です。

  • リストコンロールの一行だけを太文字に(VC++)

    http://okwave.jp/qa/q6729285.html で質問した者ですが、 DrawMenuBar(); を追加するだけで、メニューバーが通常表示されました。 コマンド名が全く分からずにすみません。 また、質問させていただきたいのですが、m_xcList という変数を割り当てたリストコンロール(IDC_LISTというID)のある特定の行だけを、太文字にしたいです。 ( http://www.g-ishihara.com/mfc_lc_01.htm を参考にしました) 後は、 http://www5d.biglobe.ne.jp/~yasukiyo/vc.html に辿りついて、 「◇ リストボックス(CListBox)の項目(行)毎に色を変更する」 はできそうのですが、 色ではなく、「太文字」にしたいです。 なぜかというと、(既にできている エクセル版では、)リストをHTML形式で書き出し、太文字のアイテムを一つのフォルダに抽出するという仕様の為です。赤色にしたアイテムは別の意味を持っています。あまり、沢山の色を使いたくないです。 どのコマンドを使えばいいのでしょうか?そもそもできないのでしょうか。。。? (もしできないのなら、なにか他のコントロールを使ったほうがいいですか?また、リストボックスとリストコントロールは別物ですか?) 今できそうなのは、さっきのホームページを参考にして、背景を黒に、文字を白にすることぐらいでしょうか? でも、できればエクセル版と形式をそろえたいです。 (VC++2010, MFC, ダイアログベースのファイルリスト作成ソフトを(VBAより)移植中です。) どうか、教えてください!

  • VC++ MFCButton マウスが通過するときの文字列を後から変更するには?

    お世話になります。 VC++ 2008で、CMFCButtonをダイアログに貼り付けています。 マウスが上を通過したとき、ステータスバーに文字列が表示される しくみがあり、それを使っています。 文字列は、XXXXX\nYYYで、YYYがツールチップ、XXXXXがステータスバーに 表示される文字列としてリソースで定義してあります。 また、そのリソース名をボタンのリソース名としています。 DDXで、メンバーのボタンとリソースIDを関連付けています。 (普通の使い方だと思います) 動作もうまくいっていますが、ステータスバーに表示する説明文を 起動後にダイナミックに変更する必要が出てきました。 ボタンの意味が変わる状況があるからです。 さて、マウスが通過するときの文字列を後から変更するには、どうしたらいいでしょうか?

  • VC++2005のeditコントロールについて

    仕事でVB6.0とFortran77を使っており、今後のためにVC++2005を独学で勉強し始めたのですが、 練習がてらVBでいうTextBoxを使って簡単な計算をしようと思っているんですがうまくいきません。 目標としては2つのeditコントロールに数値をそれぞれ入力し、その2つの数字を足し算するというもの作ろうと思っています。 今のところ、GetWindowText()ってのを使って文字列(CString)を取得することは出来たのですが、 数字(Intなど)を取得することが出来ず、また文字列を整数などに変換する方法もわからない状態です。 MSDNやネットでキーワード検索しても求める情報が見つからず困っております。 どうすればいいのでしょうか?

  • ButtonコントロールのText

    VS2005を使用しています。 言語は主にVC#,VC++です。 ButtonコントロールのTextで表示する文字列を2行にしたいのですが、 どうにかして改行させることはできないでしょうか? 今はスペースを入れて強引に二行になるようにしていますが、 \nのように改行コードなどで設定できると便利ですよね。。。 もし、そのような小技をご存知の方がいらっしゃれば、 ご教授願います。

  • VC# コンボボックスの大文字・小文字を区別する

    VC# 2005で、以下のようなコードを書くと、大文字・小文字の区別がなく、 1行目で追加したアイテムが選択された状態になってしまいます。 comboBox1.Items.Add("a"); comboBox1.Text = "A"; 大文字・小文字を別として扱うことはできますでしょうか?

  • リストコントロールのクリック操作による文字列反転について

    VisualC++2005(MFC)でダイアログベースのプログラムを作成しています。そして、ダイアログにリストコントロールを配置して、文字列を一行単位に出力しています。そのリストコントロールの文字列箇所をクリックしても反転しないようにするためにはどのようにしたら良いのでしょうか?、お教えください。 ※DisabledプロパティをTRUEにしたら、クリックしても、文字列箇所が反転しないようになったのですが、縦スクロールバーまで使用出来なくなってしまいました。

専門家に質問してみよう