CListCtrlで部分的にフォントを色変更・斜体にしたい – プログラミング – Home

CListCtrlで部分的にフォントを...
 
通知
すべてクリア

[解決済] CListCtrlで部分的にフォントを色変更・斜体にしたい


れお
 れお
(@れお)
ゲスト
結合: 12年前
投稿: 2
Topic starter  

環境:VisualStudio2008 MFC

CListCtrlでカラム分けて複数行あるリストの場合、
部分的に色を変更して斜体にするにはどうすれば良いのでしょうか?

リストで以下のようにある場合、Dの部分だけ変更したいのです
A B
C D
E F

全体はSetfontで出来るようですが、部分的には可能なのでしょうか?


引用未解決
トピックタグ
Alq3
 Alq3
(@Alq3)
ゲスト
結合: 14年前
投稿: 28
 

可能です。
CListCtrl カスタムドローで検索してみましょう。


返信引用
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 4年前
投稿: 828
 

「オーナードロー」ですね。設定するフラグもそのような
名前になっています。

CListCtrlにLVS_OWNERDRAWFIXEDをスタイルに設定すると、
オーバーライドした描画関数
virtual void DrawItem( LPDRAWITEMSTRUCT lpDIS)
が、必要なときにコールされます。
lpDIS->itemID が、描画すべきリストの行番号です。

このフラグを設定すると、コントロール側は各行の描画については
ほとんど何もしてくれません。全て自前で描画しなければ
なりません。もちろんフォントも自由にしてかまいません。
簡単なのでまずやってみましょう。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2659
 

調べてみると解りますが、

オーナードロウは、仲澤@失業者さんが書かれているように
自分がやりたい部分だけを記述すれば済むと言う物では有りません。
基本的に画面描画の全てを自分で記述する必要があります。
この為、コード量が非常に多くなりますし、
CListCtrlの動作を逐一把握していないときちんとした形にできません。

カスタムドロウは、オーナードロウの問題点を解決する為に用意されている方法で
基本的な部分は既存の動作をさせつつ、変えたい部分だけを記述する事で動作を
変える事が出来ます。但し、カスタムドロウはオーナードロウでは出来る事が
出来なかったりしますので自分がやりたい事がカスタムドロウで実現出来るなら
カスタムドロウで実装し、無理ならオーナードロウと言う流れになると思います。

詳しいやり方に関してはWeb上を検索して調べてみてください。


返信引用
れお
 れお
(@れお)
ゲスト
結合: 12年前
投稿: 2
Topic starter  

カスタムドローで実装できました!

参考にしたのは、このサイトの過去ログでした
http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+200810/08100001.txt

お三方、アドバイスありがとうございました!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました