1

私の知る限り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または、ここでの私の唯一のオプションは、完全にオーナー描画されたコントロールですか?

4

1 に答える 1

1

アップデート。
VS2008 で同じカスタム描画リスト コントロールをコンパイルしました。そして見た目が違いました。商品のサイズもぴったりで、商品同士の隙間もありませんでした。私が抱えていたサイジングの問題は、私が最初に使用していたVS2003のMFCにのみあったと思います。
男、MFCは絶え間ないHACK酒宴です:-)

質問は閉じられたと思います。
ありがとう(私)。

于 2008-10-26T14:58:46.813 に答える