リストコントロールのフォントサイズ

[戻る]
NOBUO 2006/06/07(水) 10:15:29
ダイアログ上にレポート形式のリストコントロールを置いて、
そのフォントサイズを大きくしようと思っています。
ダイアログのOnInitDialogで

LOGFONT logfont;
GetFont()->GetLogFont(&logfont);
logfont.lfHeight *= 2;
m_font.CreateFontIndirect(&logfont); //m_fontはCFont型メンバ
m_list.SetFont(&m_font);             //m_listはCListCtrl型メンバ

とやってみたところ、たしかにリストコントロールの
フォントサイズは大きくなったのですが、
ヘッダの文字まで大きくなってしまいます。

ヘッダ部分はそのままで、リスト内のフォントサイズのみを
大きくしようと思ったら、簡単には行かないものでしょうか?

PATIO 2006/06/07(水) 10:50:24
リストコントロールはヘッダコントロールを子供として持っているので
リストコントロールにフォントを設定してヘッダコントロールのフォントが変わるのは
むしろ当然だと思います。(変わらない方が変なのでは。)
もしも、どうしてもヘッダコントロールの部分だけフォントを変えたいのであれば、
リストコントロールにフォント設定した後、
リストコントロールから内部のヘッダコントロールのポインタを取得して
ヘッダコントロールには別のフォントを設定するくらいしか考え付かないです。

NOBUO 2006/06/07(水) 11:16:59
[[解決]]
ヘッダ部分も自分でフォントを指定できたのですね。

LOGFONT logfont;
GetFont()->GetLogFont(&logfont);
m_fontHeader.CreateFontIndirect(&logfont); //m_fontHeaderはヘッダ用のCFont型メンバ
logfont.lfHeight *= 2;
m_font.CreateFontIndirect(&logfont); //m_fontはCFont型メンバ
m_list.SetFont(&m_font);             //m_listはCListCtrl型メンバ
m_list.GetHeaderCtrl()->SetFont(&m_fontHeader);  

とヘッダ用のフォント(GetLogFontで持ってきた状態のまま)も別途用意しておき、
リストビューのフォントを変更した直後に元のフォントをセットしなおすことで、
思っていたように変更できました。

ありがとうございました。

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