Sahibi çizilmiş liste kutuları

Bir uygulama, liste öğeleri boyama için sorumluluk almaya bir sahibi çizilmiş liste kutusu oluşturabilirsiniz. Liste kutusunu bir kısmını boyanması gerektiğinde ( sahibi) sahibi çizilmiş liste kutusunun üst pencereyi veya iletişim kutusunu WM_DRAWITEM iletileri alır. Bir sahibi çizilmiş liste kutusu bilgisi dışında ya da ek olarak, metin dizelerini listeleyebilirsiniz.

Bir sahibi çizilmiş liste kutusu sahibi WM_DRAWITEM ileti işlemeniz gerekir. Liste kutusunu bir kısmını yeniden gerekir her bu mesajı gönderilir. Sahibi liste kutusu için belirtilen stilleri bağlı diğer iletileri işlemek gerekir.

Uygulama, LBS_OWNERDRAWFIXED ya da LBS_OWNERDRAWVARIABLE stili belirterek bir sahibi çizilmiş liste kutusu oluşturabilirsiniz. Tüm liste öğeleri liste kutusunda dizeleri veya simgeler gibi aynı yükseklikte bir uygulama LBS_OWNERDRAWFIXED stili kullanabilirsiniz. Liste öğeleri değişen yüksekliği, farklı boyutta, bit eşlemler, bir uygulama LBS_OWNERDRAWVARIABLE stilini kullanabilirsiniz.

Sahibi sahibi çizilmiş liste kutusunun, liste öğelerinin boyutlarını belirtmek için WM_MEASUREITEM ileti işleyebilir. Uygulama, LBS_OWNERDRAWFIXED stili kullanarak liste kutusu oluşturursa, sistem WM_MEASUREITEM iletiyi yalnızca bir kez gönderir. Sahibi tarafından belirtilen boyutlar tüm liste öğeleri için kullanılır. LBS_OWNERDRAWVARIABLE stil kullanılırsa, sistem liste kutusuna eklenen her liste öğesi için bir WM_MEASUREITEM iletisi gönderir. Sahibi belirlemek veya bir liste öğesinin yüksekliği her zaman lB_GETITEMHEIGHT ve lB_SETITEMHEIGHT mesajlar, sırasıyla ayarlamak için.

Bir sahibi çizilmiş liste kutusunda görüntülenen bilgiler metin içeriyorsa, uygulama her öğenin metnini LBS_HASSTRINGS stili belirterek takip edebilirsiniz. Liste kutuları lbs_sort stilindeki bu metne göre sıralanır. Liste kutusu sıralanır, ancak LBS_HASSTRINGS tarzı değil, sahibi WM_COMPAREITEM iletiyi işlemek gerekir.

Bir sahibi çizilmiş liste kutusunda sahibi metin farklı veya ek bilgi içeren liste öğeleri izlemek gerekir. Bunu yapmak için bir tanıtıcı bilgileri LB_SETITEMDATA iletiyi kullanarak öğeyi veri olarak kaydetmek için yoludur. Liste kutusundaki öğeleri ile ilişkili veri nesneleri açmak için sahibinin WM_DELETEITEM ileti işleyebilir.

Bir sahibi çizilmiş liste kutusu örneği için bkz: bir Owner-Drawn liste kutusu oluşturma.

Index