Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tej sekcji wymieniono przetwarzanie komunikatów okna wykonywane przez kontrolkę widoku listy.
Przetwarzanie komunikatów
W poniższej tabeli opisano przetwarzanie komunikatów okna wykonywane przez kontrolkę widoku listy.
| Komunikat | Przetwarzanie wykonane |
|---|---|
| WM_CHAR | Wyszukuje element widoku listy rozpoczynający się od określonego znaku, a jeśli element zostanie znaleziony, wybiera i ustawia fokus na element. Wiele znaków odebranych w interwale limitu czasu, obecnie ustalonych na jedną sekundę, jest połączonych, a kontrolka widoku listy wyszukuje element rozpoczynający się od wynikowego ciągu. |
| WM_COMMAND | Przetwarza EN_UPDATE i EN_KILLFOCUS kody powiadomień oraz przekazuje wszystkie inne powiadomienia kontroli edycji do okna nadrzędnego. |
| WM_CREATE | Wykonuje inicjację dodatkową, aby WM_NCCREATE. Jeśli nie określono stylu okna LVS_SHAREIMAGELISTS, kontrolka widok-listy tworzy ikonę i małe listy obrazów ikon w tym momencie. |
| WM_DESTROY | Zwalnia zasoby przydzielone podczas WM_CREATE. |
| WM_ERASEBKGND | Usuwa tło okna przy użyciu bieżącego koloru tła dla kontrolki widoku listy. Jeśli kolor tła jest wartością CLR_NONE, kontrolka widok-listy przekazuje komunikat do okna nadrzędnego. |
| WM_GETDLGCODE | Zwraca kombinację wartości DLGC_WANTTAB i DLGC_WANTARROWS. |
| WM_GETFONT | Zwraca uchwyt do bieżącej czcionki etykiety. |
| WM_HSCROLL | Przewija kontrolkę widoku listy w poziomie. |
| WM_KEYDOWN | Przetwarza SPACJI, ENTER i strzałek oraz wysyła kod powiadomienia LVN_KEYDOWN do okna nadrzędnego. |
| WM_KILLFOCUS | Przemaluje element listy ukierunkowanej, jeśli istnieje, i wysyła kod powiadomienia NM_KILLFOCUS do okna nadrzędnego. |
| WM_LBUTTONDBLCLK | Wysyła okno nadrzędne NM_DBLCLK (widok listy) kod powiadomienia. |
| WM_LBUTTONDOWN | Przetwarzane na różne sposoby w zależności od tego, czy operacja kliknięcia lub przeciągania jest inicjowana. Aby określić, która operacja jest wykonywana, kontrolka widoku listy wprowadza modalną pętlę komunikatów do momentu zwolnienia przycisku lub przeniesienia myszy. W przypadku kliknięcia kontrolka widoku listy może zmienić element z fokusem i wybrane elementy, biorąc pod uwagę położenie kursora, stan SHIFT i CTRL itd. Następnie kontrolka widoku listy wysyła okno nadrzędne NM_CLICK (widok listy) kod powiadomienia. Jeśli przeciąganie rozpoczyna się od elementu, kontrolka widoku listy wybiera i ustawia fokus na element. Następnie wysyła kod powiadomienia LVN_BEGINDRAG do okna nadrzędnego. Okno nadrzędne jest odpowiedzialne za faktyczne przeprowadzenie operacji przeciągania. Jeśli przeciąganie rozpoczyna się na tle okna, kontrolka widoku listy wprowadza kolejną modalną pętlę komunikatów, umożliwiając użytkownikowi utworzenie prostokąta przez przeciągnięcie myszy. Zaznaczono elementy w obrębie prostokąta. |
| WM_NCCREATE | Przydziela i inicjuje wewnętrzną strukturę danych, a następnie wywołuje funkcję DefWindowProc. |
| WM_NCDESTROY | Zwalnia zasoby przydzielone przez kontrolkę widoku listy. Jeśli nie zostanie użyty styl LVS_SHAREIMAGELISTS, obejmuje to usunięcie pełnych i małych list obrazów. |
| WM_NOTIFY | Przetwarza kody powiadomień kontrolki nagłówka. |
| WM_PAINT | Wyświetla wszystkie elementy w regionie aktualizacji. W przypadku elementów wywołania zwrotnego kontrolka najpierw wysyła kod powiadomienia LVN_GETDISPINFO do okna właściciela w celu żądania wyświetlania informacji. Jeśli parametr wParam jest inny niż NULL, kontrolka przyjmuje, że wartość jest HDC i maluje przy użyciu tego kontekstu urządzenia. |
| WM_RBUTTONDOWN | Przetworzone tak samo jak komunikat WM_LBUTTONDOWN, z tą różnicą, że kontrolka wysyła kod powiadomień NM_RCLICK (widok listy) (zamiast NM_CLICK (widok listy)) i kod powiadomienia LVN_BEGINRDRAG (zamiast LVN_BEGINDRAG). Należy pamiętać, że kontrolka przetwarza odpowiedni komunikat WM_RBUTTONUP i nie wysyła go. W związku z tym aplikacje nie widzą tego komunikatu, nawet przez podklasę kontrolki. |
| WM_SETFOCUS | Przemaluje element listy ukierunkowanej, jeśli istnieje, i wysyła kod powiadomienia NM_SETFOCUS do okna nadrzędnego. |
| WM_SETFONT | Zapisuje określony uchwyt czcionki, przekazuje komunikat do okna nagłówka, jeśli istnieje, i przemaluje przy użyciu nowej czcionki. |
| WM_SETREDRAW | Włącza lub wyłącza ponowne rysowanie. |
| WM_TIMER | Rozpoczyna edytowanie etykiety elementu. Jeśli użytkownik kliknie etykietę elementu ukierunkowanego, kontrolka widoku listy ustawia czasomierz zamiast natychmiast wprowadzać tryb edycji. Czasomierz umożliwia sterowanie widokiem listy, aby nie wprowadzić trybu edycji, jeśli użytkownik kliknie dwukrotnie etykietę. |
| WM_VSCROLL | Przewija kontrolkę widoku listy w pionie. |
| WM_WINDOWPOSCHANGED | Aktualizuje paski przewijania okna. Jeśli bieżący widok jest ikoną lub małym widokiem ikony, a styl LVS_AUTOARRANGE jest określony, kontrolka widok-listy będzie również rozmieszczać elementy listy. |
| WM_WININICHANGE | Przetwarza zmiany metryk systemowych. |