いつもお世話になっています。^^
VC++(MFC)です。
ListViewのフォントを変えているのですが、フォントを大きくしてもヘッダーの高さは変わらないコーディングは可能でしょうか?
ご存知の方がいればご教授お願いします。
オーナードローするしかないでしょうね。
高さをフォントに合わせないのであればヘッダに表示する文字はどうなるのでしょうか?
ヘッダのフォントとリストのフォントと別のものにしたいとか?
一応オーナードローの手順
詳細はVC++(Visual Studio)のバージョンが書かれていないのでかけませんので。
ダイアログベースとします。
1. CHeaderCtrlの派生クラスを作成
2. 1のクラスのDrawItemメソッドをオーバーライド
3. ダイアログクラスにCListCtrl型のコントロール変数を作成
4. 1のクラスのメンバ変数をダイアログクラスに用意
5. OnInitDialogで4の変数に対してSubclassWindowでリストビューのヘッダコントロールをサブクラス化
※CFormViewやCListViewの場合は書かないほうが悪い。
適切に置き換えて解釈してください。
ということで、環境は必ず明記しましょう。
質問者側は回答者側にもし○○なら見たいな回答をさせないように配慮しましょう。
環境明記の例
Windows Xp Sp2/Visual Studio 2005 Sp1/MFC ダイアログベース/Unicode
>オーナードローするしかないでしょうね。
と思ったけど、ダメっぽいですね。
リストビューのヘッダ部分の高さはリスト部分の1行の高さにあわせているので
変えれても高さを低くしたときはヘッダ部分と1行目の間に不自然な空白がでてしまいます。
(ヘッダ部分を1行の高さより高くすると1行目にかぶる。
1行の高さの倍数分の高さにすればかぶった部分の行が使えない)
一応過去ログです。
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200610/06100016.txt
ということで、見た目に差異がでてしまいますがヘッダコントロールと
リストビューを組み合わせてやるしかないでしょう。
というかリストビューの"リスト部分"をオーナードローすればいいのかな。
ヘッダコントロールを使って、自前で合成するとか。。
ツイート | ![]() |