リストビューコントロールのハンドルについて疑問に思う事がありまして、ご教授よろしくおねがいします。
通常リストビューをCreateWindow()で作成した時に戻り値として受け取るウィンドウハンドルに対してSetWindowFont()を行うとリストビュー全体のフォントが変更されます。
リストビュー関数にはListView_GetHeader( リストビューハンドル );という関数が用意されていてリストビューのカラム部分のハンドルを取得できます。
このハンドルに対してSetWindowFont()を行うとカラム部分だけのフォントが変更されます。
という事はアイテム部分だけのハンドルを取得し、SetWindowFont()でフォントを変更する事はできるのでしょうか?
ご教授よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
★アドバイス
ちょっと説明不十分でしたね。
前回の構造はリスト部の子ウインドウとしてヘッダ部のウインドウが存在する図です。
ですから親ウインドウ(リスト部)にフォントを設定すると子ウインドウ(ヘッダ部)も
一緒に変更されるのではないでしょうか。
・それで直接子ウインドウ(ヘッダ部)のウインドウ・ハンドルを取得してフォントの
変更をするとヘッダ部のみが変更されリスト部(親ウインドウ)には影響がないものと
思います。
・またヘッダ部はオプション(スタイル)で非表示に出来ますが、リスト部だけを非表示
には出来ません。つまりリストビューのハンドルに対して非表示にするとヘッダ部も
一緒に非表示になります。これは親ウインドウ(リスト部)が非表示になるとその子の
ウインドウも一緒に非表示になるわけです。フォントの設定も同じ考えでしょう。
>この事からリスト部分だけのウィンドウハンドルが存在するのではと思いました。
>リスト部分だけのウィンドウハンドルは存在するのでしょうか?
親…リスト部のウインドウ・ハンドル(リストビュー)
子…ヘッダ部のウインドウ・ハンドル
このような構造で2つに分かれています。
決して独立して2つのウインドウがあるわけではないのです。
※親子関係として2つのウインドウがあるのです。
No.2
- 回答日時:
★アドバイス
>リスト部のウィンドウハンドル
これは通常リストビューを CreateWindow() で作成した時に戻り値として
受け取るウィンドウ・ハンドルです。
構造:
リストビューのウィンドウ・ハンドル(リスト部)
└ヘッダ部のウィンドウ・ハンドル(ListView_GetHeaderで取得)
ご回答ありがとうございます。
なるほどCreateWindow()の戻り値でリスト部分のウィンドウハンドルだと私も色々調べて思いました。
しかし疑問が残ります。
・HWND hList = CreateWindow()の戻り値がリスト部分のウィンドウハンドルだとすればSetWindowFont()でhListを指定してフォントを設定した時にヘッダ部分にはフォントが設定されないはずです。しかしヘッダ部分にも同じフォントが設定されてしまいます。
・ListView_GetHeader()で取得したヘッダ部分のウィンドウハンドルにSetWindowFont()を行うとヘッダ部分だけフォントが指定されます。
この事からリスト部分だけのウィンドウハンドルが存在するのではと思いました。リスト部分だけのウィンドウハンドルは存在するのでしょうか?
ご教授よろしくお願いいたします。
No.1
- 回答日時:
★アドバイス
・無理です。
理由は簡単でリストビューはヘッダ部とリスト部の2つの構造で作られています。
この2つはそれぞれ別々のウインドウ・ハンドルを持っていますが
アイテム部分の1つにウインドウ・ハンドルが存在するわけではありません。
ですから個別のアイテムに対して SetWindowFont() 関数でフォントを変更できません。
・個別のアイテムに対してフォントを変更するにはオーナードローするしかありません。
オーナードローするときに1つのアイテムにつきフォント・ハンドルをlParamに
セットして描画時にlParamよりフォント・ハンドルを取り出すような工夫が必要です。
Oh-Orange様ご回答ありがとうございます。
なるほどリストビューはヘッダ部とリスト部に分かれていたのですね。
という事は、
・ヘッダ部のウィンドウハンドルは ... ListView_GetHeader( リストビューハンドル );で取得。
・リスト部のウィンドウハンドルの取得方法はありでしょうか?
ご教授よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Illustrator(イラストレーター) ワードに貼った画像のキャンバスと画像本体のサイズの調整 2 2022/05/19 18:31
- バッグ・財布 皮のバッグなのに持ち手が剥がれた? デパートでのセールでラルフローレンのバッグを購入しました。バッグ 4 2022/08/19 15:00
- カスタマイズ(車) トヨタ・ベルタ(KSP92)のホイールインチアップ後の走行安定性について 2 2023/01/09 11:27
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- バイク車検・修理・メンテナンス バイク 車検 名義変更 構造変更について。 親から一時抹消されていない、400cc車検切れのバイクを 1 2023/04/22 18:31
- ノートパソコン Win10 EXCEL でのエラー 2 2022/04/03 15:57
- 国産車 軽自動車のメーカーとハンドル操作感について、お聞きします。 ハンドルを切る時に、ハンドルが軽いのは、 4 2022/11/19 08:46
- 運転免許・教習所 教習所に行ってます。車線変更でウインカーって毎回自分で消してますか?それともハンドルの傾きで勝手に消 3 2022/03/28 18:38
- その他(車) みなさんは、自分の娘にハンドル握るなら酒飲むなとしつけてますか?もしあなたの娘がお酒飲んだのにハンド 3 2023/04/23 19:14
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの大きさ
-
VBAのフォント変更(エクセルか...
-
コンボボックス内の文字サイズ変更
-
チェックボックスの箱のサイズ...
-
ドロップダウンリストのフォン...
-
VBA TEXTBOXテキストボックスの...
-
ワードでコントロールツールボ...
-
JTableのヘッダー文字のサイズ変更
-
エディットボックスのフォント...
-
Msgboxで使用するフォントの指...
-
static 文字が上に張り付いて・...
-
Eclipseで修正したファイル名の...
-
C# のフォームデザイン&レイア...
-
MSChartコントロールのフォント...
-
OSの違いによるバーコード(CODE...
-
コンボボックスの一部のアイテ...
-
JakaraPOI セル内部のフォント...
-
リストコンロールの一行だけを...
-
VB.NET2005 TextBox 高さ(Heig...
-
EDITBOXに関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの大きさ
-
コンボボックス内の文字サイズ変更
-
VBAのフォント変更(エクセルか...
-
ドロップダウンリストのフォン...
-
チェックボックスの箱のサイズ...
-
VB.NET2005 TextBox 高さ(Heig...
-
リソースエディタでスタティッ...
-
プロポーショナルフォントの文...
-
VBA TEXTBOXテキストボックスの...
-
コンボボックスの一部のアイテ...
-
WPFのフォントカラー変更につい...
-
ワードでコントロールツールボ...
-
Eclipseで修正したファイル名の...
-
エディットボックスのフォント...
-
Msgboxで使用するフォントの指...
-
VBにて指定した通りにExcelの列...
-
ActiveReport中のフォントサイ...
-
Excelのセルのフォントサイズを...
-
ハングル文字を入力するには、...
-
JakaraPOI セル内部のフォント...
おすすめ情報