Wyciągnąć właściciel listy pól

Aplikację można utworzyć pole listy rysowane właściciela do wzięcia odpowiedzialności za malowanie elementów listy. Nadrzędny okna lub okna dialogowego pole pole rysowane właściciel listy ( właściciel) odbiera wiadomości WM_DRAWITEM , gdy część pola listy musi być malowane. Pole rysowane właściciel listy można wyświetlić listę informacji innych niż lub oprócz ciągi tekstowe.

Właściciel pola rysowane właściciel listy musi przetworzyć wiadomość WM_DRAWITEM. Ten komunikat jest wysyłane, gdy tylko część pola listy muszą zostać odświeżone. Właściciel może zaistnieć potrzeba przetwarzać inne wiadomości, w zależności od stylów określone dla pola listy.

Aplikację można utworzyć pole listy rysowane właściciela określając styl LBS_OWNERDRAWFIXED lub LBS_OWNERDRAWVARIABLE. Jeśli wszystkie elementy listy w polu listy jest tej samej wysokości, takie jak ciągi lub ikony aplikacji można użyć stylu LBS_OWNERDRAWFIXED. Jeśli elementy listy są różnej wysokości, mapy bitowe o różnych rozmiarach, na przykład aplikacji można użyć stylu LBS_OWNERDRAWVARIABLE.

Właściciel pola rysowane właściciel listy może przetwarzać komunikat WM_MEASUREITEM , aby określić wymiary elementów listy. Jeśli aplikacja tworzy pole listy za pomocą stylu LBS_OWNERDRAWFIXED, system wysyła komunikat WM_MEASUREITEM tylko raz. Wymiary określone przez właściciela są używane dla wszystkich elementów listy. Jeśli używany jest styl LBS_OWNERDRAWVARIABLE, system wysyła komunikat WM_MEASUREITEM dla każdego elementu listy dodane do pola listy. Właściciel może określić lub Ustaw wysokość elementu listy w dowolnym momencie przy użyciu wiadomości LB_GETITEMHEIGHT i LB_SETITEMHEIGHT , odpowiednio.

Jeśli informacje wyświetlane w polu rysowane właściciel listy zawiera tekst, aplikacja może przechowywać o tekst dla każdego elementu listy określając styl LBS_HASSTRINGS. Pola listy w stylu LBS_SORT są sortowane w oparciu o ten tekst. Jeśli pole listy jest posortowany, ale nie jest styl LBS_HASSTRINGS, właściciel musi przetworzyć wiadomości WM_COMPAREITEM.

W polu listy rysowania przez właściciela właściciel musi przechowywać o listę elementów zawierających informacje inne niż lub oprócz tekstu. Wygodny sposób to zrobić jest zapisanie dojścia do informacji jako element danych przy użyciu wiadomości LB_SETITEMDATA . Aby zwolnić skojarzonych elementów w polu listy obiektów danych, właściciel może przetwarzać wiadomości WM_DELETEITEM.

Przykładem pola listy rysowania przez właściciela zobacz Tworzenie pola listy Owner-Drawn.

Index