私の知る限りON_WM_MEASUREITEM
、カスタム描画リスト コントロールでは呼び出されません。コントロールが Owner Drawn である場合にのみ使用されます。
私はそれを行う方法を見つけましたが、それはややハックであり、何らかの方法で自動的に設定されたアイテム間のギャップを制御できません。
トリックは、必要なサイズの未使用の画像で作成できることです。そのCImageList
ような画像リストをリスト コントロールに割り当てると、アイテムは画像のサイズに近い寸法にサイズ変更されます。その後、Custom Draw を使用して、拡大されたアイテムの内部をペイントできます。
CImageList m_imageList1;
m_imageList1.Create(176, 144, ILC_COLOR32 | ILC_MASK, 5, 1);
GetListCtrl().SetImageList(&m_imageList1, LVSIL_NORMAL);
問題は、カスタム Drown コントロールでアイテムのサイズとアイテム間の間隔をどのように変更するかということです。
LVS_OWNERDRAWFIXED
または、ここでの私の唯一のオプションは、完全にオーナー描画されたコントロールですか?