Megosztás:


Alapértelmezett List-View üzenetfeldolgozás

Ez a szakasz a listanézet vezérlőelem által végzett ablaküzenet-feldolgozást sorolja fel.

Üzenetfeldolgozás

Az alábbi táblázat a listanézet-vezérlő által végzett ablaküzenet-feldolgozást ismerteti.

Üzenet Elvégzett feldolgozás
WM_CHAR Olyan listanézet-elemet keres, amely a megadott karakterrel kezdődik, és ha az elem megtalálható, kijelöli és az elemre állítja a fókuszt. Az időkorláton belül fogadott, jelenleg egy másodpercnél rögzített karakterek összefűzve jelennek meg, és a listanézet-vezérlő megkeresi az eredményül kapott sztringgel kezdődő elemet.
WM_COMMAND Feldolgozza a EN_UPDATE és EN_KILLFOCUS értesítési kódokat, és továbbítja az összes többi szerkesztésvezérlési értesítést a szülőablakba.
WM_CREATE Inicializálást hajt végre a WM_NCCREATEmellett. Ha a LVS_SHAREIMAGELISTS ablakstílus nincs megadva, a listanézet vezérlő ekkor létrehozza az ikont és a kis ikonképlistákat.
WM_DESTROY Felszabadítja a WM_CREATEsorán lefoglalt erőforrásokat.
WM_ERASEBKGND Törli az ablak hátterét a listanézet vezérlőelem aktuális háttérszínével. Ha a háttérszín a CLR_NONE érték, a listanézet vezérlőelem továbbítja az üzenetet a szülőablakba.
WM_GETDLGCODE A DLGC_WANTTAB és DLGC_WANTARROWS értékek kombinációját adja vissza.
WM_GETFONT A fogópontot az aktuális címke betűtípusának adja vissza.
WM_HSCROLL Vízszintesen görgeti a listanézet vezérlőt.
WM_KEYDOWN Feldolgozza a SZÓKÖZ, AZ ENTER és a nyílbillentyűket, és egy LVN_KEYDOWN értesítési kódot küld a szülőablakba.
WM_KILLFOCUS Ha van ilyen, újrafesti a szűrt listaelemet, és egy NM_KILLFOCUS értesítési kódot küld a szülőablakba.
WM_LBUTTONDBLCLK NM_DBLCLK (listanézet) értesítési kódot küld a szülőablaknak.
WM_LBUTTONDOWN A feldolgozás különböző módokon történik attól függően, hogy kattintási vagy húzási műveletet kezdeményeznek-e. Annak megállapításához, hogy melyik műveletről van szó, a listanézet vezérlő egy modális üzenet ciklusba lép, amíg a gomb ki nem szabadul, vagy az egér át nem kerül. Kattintás esetén a listanézet vezérlőelem módosíthatja, hogy melyik elem legyen a fókusz, és mely elemek legyenek kijelölve, figyelembe véve a kurzor pozícióját, a SHIFT és a CTRL billentyűk állapotát stb. Ezután a listanézet vezérlő elküldi a szülőablakát egy NM_CLICK (listanézet) értesítési kód.
Ha a húzás egy elem felett kezdődik, a listanézet vezérlő kijelöli és az elemre állítja a fókuszt. Ezután egy LVN_BEGINDRAG értesítési kódot küld a szülőablakba. A szülőablak felelős a húzási művelet tényleges végrehajtásáért.
Ha a húzás az ablak hátterén kezdődik, a listanézet vezérlő egy másik modális üzenethurkot ad meg, amely lehetővé teszi, hogy a felhasználó téglalapot alakítson ki az egér húzásával. A téglalapon belüli elemek ki vannak jelölve.
WM_NCCREATE Lefoglal és inicializál egy belső adatstruktúrát, majd meghívja a DefWindowProc függvényt.
WM_NCDESTROY Felszabadítja a listanézet-vezérlő által lefoglalt erőforrásokat. Ha nem használja a LVS_SHAREIMAGELISTS stílust, ez magában foglalja a teljes méretű és kis méretű képlisták törlését.
WM_NOTIFY Feldolgozza a fejlécvezérlő értesítési kódjait.
WM_PAINT Megjeleníti a frissítési régióban lévő elemeket. Visszahívási elemek esetén a vezérlő először egy LVN_GETDISPINFO értesítési kódot küld a tulajdonosi ablaknak, hogy megjelenítendő információkat kérjen. Ha a wParam paraméter nem NULL, a vezérlő feltételezi, hogy az érték HDC, és az eszközkörnyezetet használó festékek.
WM_RBUTTONDOWN A feldolgozás ugyanúgy történik, mint a WM_LBUTTONDOWN üzenet, azzal a kivételrel, hogy a vezérlő egy NM_RCLICK (listanézet) értesítési kódot küld (NM_CLICK (listanézet)helyett ) és egy LVN_BEGINRDRAG értesítési kódot (LVN_BEGINDRAGhelyett). Vegye figyelembe, hogy a vezérlő feldolgozza a megfelelő WM_RBUTTONUP üzenetet, és nem küldi el. Az alkalmazások így nem láthatják ezt az üzenetet, még a vezérlőelem alosztályozásával sem.
WM_SETFOCUS Ha van ilyen, újrafesti a szűrt listaelemet, és egy NM_SETFOCUS értesítési kódot küld a szülőablakba.
WM_SETFONT Menti a megadott betűtípus-leírót, továbbítja az üzenetet a fejlécablakba, ha van ilyen, és újrafesti az új betűtípust.
WM_SETREDRAW Be- vagy kikapcsolja az újrarajzolást.
WM_TIMER Megkezdi az elemcímkék szerkesztését. Ha a felhasználó a szűrt elem feliratára kattint, a listanézet-vezérlő beállít egy időzítőt ahelyett, hogy azonnal beírja a szerkesztési módot. Az időzítő lehetővé teszi, hogy a listanézet vezérlőelem ne szerkesztési módot adjon meg, ha a felhasználó duplán kattint a címkére.
WM_VSCROLL Függőlegesen görgeti a listanézet vezérlőt.
WM_WINDOWPOSCHANGED Frissíti az ablak görgetősávját. Ha az aktuális nézet ikon vagy kis ikon nézet, és a LVS_AUTOARRANGE stílus meg van adva, a listanézet vezérlő a listaelemeket is elrendezi.
WM_WININICHANGE Feldolgozza a rendszermetrikák változásait.