回答編集履歴
2
リストボックス項目の高さを変えられている、と判断した根拠を関連箇所へ追記
test
CHANGED
@@ -162,6 +162,12 @@
|
|
162
162
|
|
163
163
|
これで分かるように、初回の`DrawItem`呼び出しでItem[1]のときに高さが変わっています。あくまで私の頼りない推測ですが、`CCheckListBox`の実装でチェックボックスの存在などを加味した高さの計算とセットがなされてしまうようです。
|
164
164
|
|
165
|
+
**>>>>追記 2019/09/28 01:51**
|
166
|
+
|
167
|
+
尚、コード例は示しませんが、`OnInitDialog`内での`AddString`実行直後に`CDC::GetTextExtent`で高さを確認すると全ての項目で高さ18であったものが、初回の描画、Item[1]以降で14になってしまったことから「高さを変えられている」と判断しました。
|
168
|
+
|
169
|
+
**<<<<追記ここまで**
|
170
|
+
|
165
171
|
|
166
172
|
|
167
173
|
そこで、対処として`SubclassDlgItem`~`AddString`の実行後にあえて明示的に`CListBox::SetItemHeight`でItem[0]の高さを指定してみました。
|
1
抜けを追記
test
CHANGED
@@ -164,7 +164,7 @@
|
|
164
164
|
|
165
165
|
|
166
166
|
|
167
|
-
そこで、対処として`SubclassDlgItem`の実行後にあえて明示的に`
|
167
|
+
そこで、対処として`SubclassDlgItem`~`AddString`の実行後にあえて明示的に`CListBox::SetItemHeight`でItem[0]の高さを指定してみました。
|
168
168
|
|
169
169
|
リストボックスのスタイルは`LBS_OWNERDRAWFIXED`なので、ひとつセットすれば他の項目も同じになるだろう、との意図です。
|
170
170
|
|