Megosztás:


Tudnivalók a Tree-View vezérlőkről

A fanézet vezérlőelem olyan ablak, amely az elemek hierarchikus listáját jeleníti meg, például a dokumentum címsorait, az index bejegyzéseit vagy a lemez fájljait és könyvtárait. Minden elem egy címkéből és egy választható bitleképből áll, és minden elemhez hozzárendelheti az alelemek listáját. Ha egy elemre kattint, a felhasználó kibonthatja vagy összecsukhatja a társított részhalmazok listáját.

Az alábbi ábrán egy egyszerű fa nézet vezérlő látható, amely tartalmaz egy gyökércsomópontot, egy kibontott csomópontot, és egy összecsukott csomópontot. A vezérlő egy bitképet használ a kijelölt elemhez, egy másik bitképet pedig más elemekhez.

képernyőfelvétel öt csomópontot jelenít meg egy hierarchiában; az egyik csomópont szövege ki van jelölve, de a csomópontok nem kapcsolódnak egymáshoz vonalak

Miután létrehozott egy fanézet-vezérlőt, üzeneteket küldhet a vezérlőnek, hozzáadhatja, eltávolíthatja, elrendezheti vagy más módon módosíthatja az elemeket. Minden üzenethez tartozik egy vagy több megfelelő makró, amelyet használhat az üzenet explicit elküldése helyett.

Tree-View stílusok

A fanézet stílusai szabályozzák a fanézet-vezérlő megjelenését. A kezdeti stílusokat a fa nézet vezérlő létrehozásakor állítja be. A fa nézet vezérlőelem létrehozása után a stílusokat lekérheti és módosíthatja a GetWindowLong és SetWindowLong függvény használatával.

A TVS_HASLINES stílus a gyermekelemeket szülőelemhez csatoló rajzvonalakkal javítja a fanézet-vezérlő hierarchiájának grafikus ábrázolását, ahogyan az az alábbi ábrán látható.

képernyőfelvételen az előző elrendezés látható, de a csomópontokhoz csatlakozó vonalakkal; az első sor a gyökércsomópontról származik,

Ez a stílus önmagában nem rajzol vonalakat a hierarchia gyökerénél. Ehhez kombinálnia kell a TVS_HASLINES és TVS_LINESATROOT stílusokat. Az eredmény az alábbi ábrán látható.

képernyőfelvételen az előző elrendezés látható, de a gyökércsomóponthoz vezető további vízszintes vonallal

A felhasználó a szülőelemre duplán kattintva kibonthatja vagy összecsukhatja a gyermekelemek listáját. A TVS_HASBUTTONS stílusú fa nézet vezérlőelem gombot ad a szülőelemek bal oldalához. A felhasználó csak egyszer kattinthat a gombra a szülőelem dupla kattintása helyett a gyermek kibontásához vagy összecsukásához. TVS_HASBUTTONS nem ad hozzá gombokat a hierarchia gyökerénél lévő elemekhez. Ehhez egyesítenie kell TVS_HASLINES, TVS_LINESATROOTés TVS_HASBUTTONS. Ez a stíluskombináció az alábbi ábrán látható.

képernyőfelvételen az előző elrendezés látható, de két sor minden csúcsánál kibontás/összecsukás gombokkal

A TVS_CHECKBOXES stílus jelölőnégyzeteket hoz létre az egyes elemek mellett. Ha a jelölőnégyzet stílust szeretné használni, a TVS_CHECKBOXES stílust akkor kell beállítania (SetWindowLong), miután létrehozta a vezérlőelemet a fa megjelenítéséhez, és mielőtt feltöltené a fát. Időzítési problémáktól függően a jelölőnégyzetek előfordulhat, hogy nem bejelölve jelennek meg. Az alábbi ábrán a jelölőnégyzet stílusa látható.

képernyőfelvételen az előző elrendezés látható, de az egyes csomópontok melletti jelölőnégyzettel; két jelölőnégyzet van kijelölve

A TVS_FULLROWSELECT stílus miatt a kijelölés a vezérlőelem teljes szélességére kiterjed, nem csak magára az elemre. Az alábbi ábrán ez a stílus látható.

képernyőfelvételen öt csomópont eredeti elrendezése látható vonalak nélkül, de a kijelölési kiemelés kiterjeszti a vezérlő teljes szélességét

A TVS_EDITLABELS stílus lehetővé teszi a felhasználó számára a fanézeti elemek címkéinek szerkesztését. További információ a címkék szerkesztéséről: Tree-View Címkeszerkesztési.

Ezekről és más stílusokról további információt az Tree-View Ablakstílusokcímű témakörben talál.

Szülő- és gyermekelemek

A fanézet-vezérlő bármely eleme rendelkezhet egy al-elemek listájával—úgynevezett gyermekelemek—társítva. Egy vagy több gyermekelemet tartalmazó elemet szülőelemnek nevezünk. A gyermekelem a szülőeleme alatt jelenik meg, és behúzással jelzi, hogy alárendelt a szülőnek. Olyan elem jelenik meg a hierarchia tetején, amelynek nincs szülője, és gyökérelemneknevezik.

Ha egy elemet szeretne hozzáadni a fa nézet vezérlőelemhez, küldje el a TVM_INSERTITEM üzenetet a vezérlőnek. Az üzenet egy HTREEITEM típusú leírót ad vissza, amely egyedileg azonosítja az elemet. Elem hozzáadásakor meg kell adnia az új elem szülőelemére mutató hivatkozást. Ha a TVINSERTSTRUCT struktúrában szülőelem-leíró helyett NULL vagy TVI_ROOT értéket ad meg, az elem gyökérelemként lesz hozzáadva.

A szülőelem gyermekelem-listájának állapota bármikor kibontható vagy összecsukható. Amikor az állapot kibővül, a gyermekelemek a szülőelem alatt jelennek meg. Összecsukáskor a gyermekelemek nem jelennek meg. A lista automatikusan átvált a kibontott és az összecsukott állapot között, amikor a felhasználó duplán kattint a szülőelemre, vagy ha a szülőelem a TVS_HASBUTTONS stílussal rendelkezik, amikor a felhasználó a szülőelemhez társított gombra kattint. Az alkalmazások az TVM_EXPAND üzenet használatával kibonthatják vagy összecsukhatják a gyermekelemeket.

A fanézet vezérlőelem TVN_ITEMEXPANDING értesítési üzenetet küld a szülőablaknak, amikor egy szülőelem gyermekelemeinek listája kibontásra vagy összecsukásra készül. Az értesítés lehetőséget ad az alkalmazásnak arra, hogy megakadályozza a módosítást, vagy beállítsa a szülőelem olyan attribútumait, amelyek a gyermekelemek listájának állapotától függenek. A lista állapotának módosítása után a fa nézet vezérlő egy TVN_ITEMEXPANDED értesítési üzenetet küld a szülőablaknak.

Ha a gyermekelemek listája ki van bontva, az a szülőelemhez viszonyítva lesz behúzva. A behúzás mértékét a TVM_SETINDENT üzenettel állíthatja be, vagy lekérheti az aktuális összeget a TVM_GETINDENT üzenet használatával.

A fanézet-vezérlők a fanézet vezérlőt létrehozó folyamat halomából lefoglalt memóriát használják. A fanézetben található elemek maximális száma a halomban rendelkezésre álló memória mennyiségétől függ.

Elemfeliratok

Jellemzően az elem címkéjének szövegét akkor adja meg, amikor hozzáadja az elemet a fanézethez tartozó vezérlőelemhez. A TVM_INSERTITEM üzenet tartalmaz egy TVITEM struktúrát, amely meghatározza az elem tulajdonságait, beleértve a címke szövegét tartalmazó sztringet is.

A fa-nézet vezérlő memóriát foglal le az egyes elemek tárolásához; az elemfeliratok szövege a memória jelentős részét foglalja el. Ha az alkalmazás megőrzi a karakterláncok másolatát a fanézet vezérlőelemben, úgy csökkentheti a vezérlő memóriaigényét, hogy az LPSTR_TEXTCALLBACK értéket a pszText tagelemében (TVITEM) adja meg, ahelyett, hogy tényleges karakterláncokat adna át a fanézetnek. Az LPSTR_TEXTCALLBACK használata esetén a fa-nézet vezérlő minden alkalommal, amikor egy elemet újra kell rajzolni, lekéri az elem címkéjének szövegét a szülőablakból. A szöveg lekéréséhez a fanézet vezérlő egy TVN_GETDISPINFO értesítési üzenetet küld, amely tartalmazza egy NMTVDISPINFO struktúra címét. A szülőablaknak ki kell töltenie a struktúrába foglalt megfelelő elemeket.

Tree-View címkeszerkesztés

A felhasználó közvetlenül szerkesztheti az elemek címkéit egy fanézet vezérlőben, amely rendelkezik a TVS_EDITLABELS stílussal. A felhasználó elkezdi a szerkesztést a fókuszt tartalmazó elem feliratára kattintva. Az alkalmazás a TVM_EDITLABEL üzenet használatával kezdi meg a szerkesztést. A fanézet vezérlőelem értesíti a szülőablakot a szerkesztés megkezdésekor, illetve a megszakítás vagy a befejezés időpontjáról. Ha a szerkesztés befejeződött, a szülőablak felel az elem címkéjének frissítéséért, ha szükséges.

Amikor megkezdődik a címkeszerkesztés, a fanézet vezérlőelem egy TVN_BEGINLABELEDIT értesítési üzenetet küld a szülőablakának. Az értesítés feldolgozásával egy alkalmazás lehetővé teheti egyes címkék szerkesztését, és megakadályozhatja mások szerkesztését. A nulla visszaadása lehetővé teszi a szerkesztést, és a nonzero visszatérése megakadályozza azt.

Ha a címkeszerkesztés meg van szakítva vagy befejeződik, a fanézet vezérlő egy TVN_ENDLABELEDIT értesítési üzenetet küld a szülőablakának. Az lParam paraméter egy NMTVDISPINFO struktúra címe. A elem paraméter egy TVITEM szerkezet, amely azonosítja az elemet, és tartalmazza a szerkesztett szöveget. Ha meg szeretné tartani az új címkét, a szülőablak felel az elem címkéjének frissítéséért. A pszText tagja a TVITEM objektumnak nulla, ha a szerkesztést megszakítják.

A címkeszerkesztés során – amit általában az TVN_BEGINLABELEDIT értesítési üzenetre válaszul hajtanak végre – az editáló vezérlő fogantyúját a TVM_GETEDITCONTROL üzenet használatával kérheti le. A szerkesztési vezérlő elküldhet egy EM_SETLIMITTEXT üzenetet, amely korlátozza a felhasználó által beírható szöveg mennyiségét, vagy alosztályozza a szerkesztési vezérlőt az érvénytelen karakterek elfogásához és elvetéséhez. Vegye figyelembe azonban, hogy a szerkesztési vezérlő csak jelenik meg TVN_BEGINLABELEDIT elküldése után.

Tree-View elem pozíciója

Az elem kezdeti pozícióját akkor állítják be, amikor az elemet a fa-nézet vezérlőelemhez adják a TVM_INSERTITEM üzenet használatával. Az üzenet tartalmaz egy TVINSERTSTRUCT struktúrát, amely meghatározza a szülőelemhez tartozó leírót, valamint azt az elemet, amely után az új elemet be kell szúrni. A második fogantyúnak azonosítania kell a megadott szülő egy gyermekelemét, vagy a következő értékek egyikét: TVI_FIRST, TVI_LAST vagy TVI_SORT.

Ha TVI_FIRST vagy TVI_LAST van megadva, a fa nézet vezérlő az új elemet az adott szülőelem gyermekelemeinek listája elejére vagy végére helyezi el. Ha TVI_SORT van megadva, a fa nézet vezérlő az új elemet betűrendben illeszti a gyerekelemek listájába az elemcímkék szövege alapján.

A szülőelem gyermekelemeinek listáját betűrendbe rendezheti a TVM_SORTCHILDREN üzenet használatával. Az üzenet tartalmaz egy paramétert, amely meghatározza, hogy az adott szülőelemtől csökkenő gyermekelemek minden szintje betűrendbe van-e rendezve.

A TVM_SORTCHILDRENCB üzenet lehetővé teszi a gyermekelemek rendezését az Ön által megadott feltételek alapján. Amikor ezt az üzenetet használja, meg kell adnia egy alkalmazás által definiált visszahívási függvényt, amelyet a faképernyő bármikor meghívhat, amikor két gyermekelem relatív sorrendjéről kell dönteni. A visszahívási függvény két 32 bites alkalmazás által definiált értéket kap az összehasonlítandó elemekhez, és egy harmadik 32 bites értéket, amelyet a TVM_SORTCHILDRENCBküldésekor ad meg.

Tree-View Az elemek állapotának áttekintése

Minden elem a fa nézet vezérlőben jelenlegi állapottal rendelkezik. Az egyes elemek állapotinformációi bitjelölőket, valamint képlistaindexeket tartalmaznak, amelyek jelzik az elem állapotképét és az átfedő képet. A bitjelölők jelzik, hogy az elem ki van-e jelölve, letiltva, kibontva stb. A fanézet-vezérlők általában automatikusan beállítják az elemek állapotát, hogy tükrözzék a felhasználói műveleteket, például egy elem kijelölését. Az elemek állapotát azonban a TVM_SETITEM üzenettel is beállíthatja, és az TVM_GETITEM üzenettel lekérheti az elem aktuális állapotát. Az elemállapotok teljes listáját a Tree-View Vezérlőelem-állapotokcímű témakörben találja.

Egy elem aktuális állapotát a állapot tagja határozza meg a TVITEM struktúrának. A fanézet-vezérlők módosíthatják az elemek állapotát, hogy tükrözzék a felhasználói műveletet, például kijelölik az elemet, vagy a fókuszt az elemre helyezik. Emellett az alkalmazás módosíthatja az elem állapotát az elem letiltásához vagy elrejtéséhez, illetve egy átfedési lemezkép vagy állapotkép megadásához.

Egy elem állapotának megadásakor vagy módosításakor az állapotmaszk tagja TVITEM határozza meg, hogy mely állapotbiteket kell beállítani, és a állapot tag tartalmazza az új értékeket ezekhez a bitekhez.

Az elem átfedő képének beállításához a állapotmaszknak tartalmaznia kell a TVIS_OVERLAYMASK értéket, és a állapotnak tartalmaznia kell az átfedő kép egy alapú indexét, amelyet a INDEXTOOVERLAYMASK makróval 8 bit balra toltan határozunk meg. Az index nulla lehet, hogy megadja, nincs átfedő kép.

Az elem ikonja mellett megjelenik egy állapotkép, amely egy alkalmazás által meghatározott állapotot jelez. Az állapotképek egy állapotrendszerkép-listában találhatók, amely egy TVM_SETIMAGELIST üzenet küldésével van megadva. Egy elem állapotképének beállításához adja meg a TVIS_STATEIMAGEMASK értéket a állapotmaszk tagjába a TVITEM struktúrájának. A struktúra állapotának tagjában a 12. és a 15. bit közötti részek határozzák meg a rajzolandó kép indexét az állapotképek listájában.

Az állapotképindex beállításához használja INDEXTOSTATEIMAGEMASK. Ez a makró egy indexet vesz fel, és megfelelően állítja be a 12–15. bitet. Ha azt szeretné jelezni, hogy az elemnek nincs állapotképe, állítsa az indexet nullára. Ez a konvenció azt jelenti, hogy az állapotképlistában szereplő nulla kép nem használható állapotképként. A tagállapot 12–15 bitjének elkülönítéséhez használja a TVIS_STATEIMAGEMASK maszkot. Az átfedésekről és az állapotképekről további információt Tree-View Képlistákcímű témakörben talál.

Elem kijelölése

A tree-view kontroll értesíti a szülőablakot, amikor a kijelölés egyik elemről a másikra változik a TVN_SELCHANGING és TVN_SELCHANGED értesítési üzenetek küldésével. Mindkét értesítés tartalmaz egy értéket, amely meghatározza, hogy a módosítás az egérkattintás vagy a billentyűleütés eredménye-e. Az értesítések a kijelölést elnyerő elemről és a kijelölést elveszítő elemről is tartalmaznak információkat. Ezekkel az információkkal olyan elemattribútumokat állíthat be, amelyek az elem kijelölési állapotától függenek. Ha a TVN_SELCHANGING válaszként IGAZ értéket ad vissza, az megakadályozza a kijelölés módosítását, és ha HAMIS értéket ad vissza, az lehetővé teszi a módosítást.

Az alkalmazás a TVM_SELECTITEM üzenet elküldésével módosíthatja a kijelölést.

Eleminformációk

A fa-nézet vezérlőelemek számos olyan üzenetet támogatnak, amelyek lekérdezik a vezérlőelemek adatait.

A TVM_GETITEM üzenet lekérheti egy elem leíróját és attribútumait. Az elemek attribútumai közé tartozik az aktuális állapota, az elem kijelölt és nem kijelölt bitleképeinek indexei a vezérlőelem képlistájában, egy jelző, amely jelzi, hogy az elem tartalmaz-e gyermekelemeket, az elem címkesztringjének címét és az elem alkalmazás által definiált 32 bites értékét.

A TVM_GETNEXTITEM üzenet lekéri azt a fa nézeti elemet, amely az aktuális elemhez meghatározott kapcsolatban áll. Az üzenet lekérheti egy elem szülőjét, a következő vagy az előző látható elemet, az első gyermekelemet stb.

A TVM_GETITEMRECT üzenet lekéri a fa nézeti elem határolókeretét. A TVM_GETCOUNT és TVM_GETVISIBLECOUNT üzenetek lekérik a fanézet vezérlőelem elemeinek számát, valamint a fanézet vezérlőelem ablakában teljes mértékben látható elemek számát. A TVM_ENSUREVISIBLE üzenet használatával gondoskodhat arról, hogy egy adott elem látható legyen.

Tree-View Képlisták

A fa nézet vezérlő minden eleméhez négy ikonkép társítható.

  • Az elem kijelölésekor megjelenik egy kép, például egy megnyitott mappa.
  • Egy kép, például egy bezárt mappa jelenik meg, ha az elem nincs kijelölve.
  • Áttetszően rajzolt átfedő kép a kijelölt vagy a nem kijelölt kép fölé.
  • Állapotkép, amely egy további kép, amely a kijelölt vagy nem kijelölt kép bal oldalán jelenik meg. Az alkalmazás által definiált elemek állapotának jelzéséhez használhat állapotképeket, például bejelölt és törölt jelölőnégyzeteket.

Alapértelmezés szerint a fa nézet vezérlő nem jeleníti meg az elemképeket. Az elemképek megjelenítéséhez létre kell hoznia képlistákat, és társítania kell őket a vezérlővel. További információ a képlistákról: Képlisták.

A fa nézet vezérlő két képlistával rendelkezhet: egy normál képlistával és egy állapotképlistával. Egy normál képlista tárolja a kijelölt, a nem kijelölt és az átfedésmentes képeket. Az állapotképek listája állapotképeket tárol. A ImageList_Create függvény használatával hozzon létre egy képlistát, és más képlistafüggvényekkel vegyen fel bitképeket a képlistára. Ezután a TVM_SETIMAGELIST üzenettel társíthatja a képlistát a fanézet vezérlőelemmel. A TVM_GETIMAGELIST üzenet lekér egy fogantyút a fa nézet vezérlő képlistáinak egyikére. Ez az üzenet akkor hasznos, ha további képeket kell hozzáadnia a listához.

A kijelölt és a nem kijelölt képek mellett a fanézet-vezérlő alapértelmezett képlistája legfeljebb négy fedőképet tartalmazhat. Az átfedő képeket egy egy-alapú index azonosítja, és úgy vannak kialakítva, hogy transzparensen ábrázolják a kijelölt és a nem kijelölt képeket. Ha átfedő maszk indexet szeretne hozzárendelni egy normál képlistában lévő képhez, hívja meg a ImageList_SetOverlayImage függvényt.

Alapértelmezés szerint az összes elem megjeleníti az első képet a normál képlistában mind a kijelölt, mind a nem kijelölt állapotok esetében. Emellett az elemek alapértelmezés szerint nem jelennek meg átfedő képek vagy állapotképek. Az elemek alapértelmezett viselkedését a TVM_INSERTITEM vagy TVM_SETITEM üzenet elküldésével módosíthatja. Ezek az üzenetek a TVITEM struktúrát használják egy elem képlistájának indexeinek megadásához.

Ha meg szeretné adni egy elem kijelölt és nem kijelölt képeit, állítsa be a TVIF_SELECTEDIMAGE és TVIF_IMAGE biteket a maszk tagján belül a TVITEM struktúrában, és adja meg az indexeket a vezérlő normál képlistájából az iSelectImage és iImage tagokon. Másik lehetőségként az indexek megadása helyett megadhatja az I_IMAGECALLBACK értéket iSelectImage és iImage. Ez azt eredményezi, hogy a vezérlő minden alkalommal lekérdezi szülőablakát az képlistában lévő indexért, amikor az elemet újra kell kirajzolni. A vezérlő elküldi a TVN_GETDISPINFO értesítési üzenetet az index lekéréséhez.

Ha átfedésképet szeretne társítani egy elemhez, az INDEXTOOVERLAYMASK makróval adjon meg egy átfedésmaszk-indexet az elem TVITEM struktúrájának állapotában. A TVIS_OVERLAYMASK biteket is be kell állítania a stateMask tagban. Az átfedő maszk indexei egy-alapúak; a nulla index azt jelzi, hogy nincs átfedési kép megadva.

Az állapotképek egy külön állapotrendszerkép-listában vannak tárolva, és az indexük azonosítja őket. Az állapotképlista megadásához küldjön egy TVM_SETIMAGELIST üzenetet. A listanézet-vezérlővel ellentétben, amely egy egy-alapú indexet használ az állapotképek azonosításához, a fanézet-vezérlő állapotrendszerképei nulla alapú index alapján vannak azonosítva. A nulla index azonban azt jelzi, hogy az elemnek nincs állapotképe. Következésképpen a nulla kép nem használható állapotképként. Az elemállapotok és állapotképek további megvitatása: Tree-View Elemállapotok áttekintése.

Fogd és vidd műveletek

A fastruktúrás vezérlő jelzi a szülőablaknak, amikor a felhasználó elkezd egy elemet húzni. A szülőablak egy TVN_BEGINDRAG értesítési üzenetet kap, amikor a felhasználó elkezd húzni egy elemet a bal egérgombbal, és egy TVN_BEGINRDRAG értesítési üzenetet, amikor a felhasználó elkezd húzni a jobb gombbal. Megakadályozhatja, hogy egy fanézet vezérlőelem elküldje ezeket az értesítéseket, ha megadja a fanézet vezérlőnek a TVS_DISABLEDRAGDROP stílust.

Az húzási művelet során megjelenítendő képet a TVM_CREATEDRAGIMAGE üzenettel szerezheti be. A fanézet vezérlő egy húzási bitképet hoz létre a húzás alatt álló elem címkéje alapján. Ezután a fanézet vezérlőelem létrehoz egy képlistát, hozzáadja a bitképet, és visszaadja a fogantyút a képlistára.

Meg kell adnia azt a kódot, ami ténylegesen mozgatja az elemet. Ez általában magában foglalja a képlista-függvények húzási képességeinek használatát, valamint a WM_MOUSEMOVE és WM_LBUTTONUP (vagy WM_RBUTTONUP) üzenetek feldolgozását a szülőablakba a húzási művelet megkezdése után.

Ha a fa nézet vezérlő elemei a húzás és ejtés műveletek célpontjai lesznek, akkor tudnia kell, hogy az egérmutató mikor található a célelemen. Ezt a TVM_HITTEST üzenetben találhatja meg. Megadhatja egy TVHITTESTINFO szerkezet címét, amely az egérmutató aktuális koordinátáit tartalmazza. Amikor a SendMessage függvény visszatér, a struktúra egy jelölőt tartalmaz, amely jelzi az egérmutató helyét a fanézet vezérlőelemhez képest. Ha az egérmutató egy elem felett van a fa nézet vezérlőelemben, a struktúra az elemhez tartozó fogantyút is tartalmazza.

Jelezheti, hogy egy elem egy húzás-és-ejtés művelet célpontja azáltal, hogy az TVM_SETITEM üzenettel beállítja az állapotot a TVIS_DROPHILITED értékre. Az ilyen állapotú elemek a húzási és ejtési célpont megjelölésére használt stílusban vannak megrajzolva.

Tree-View Értesítési üzenetek felügyelete

A fanézet vezérlési elem a következő értesítési üzeneteket küldi a szülőablaknak WM_NOTIFY üzenetek formájában.

Értesítés Leírás
TVN_BEGINDRAG Egy húzás-bedobás művelet kezdetét jelzi.
TVN_BEGINLABELEDIT A helyszíni címkeszerkesztés kezdetét jelzi.
TVN_BEGINRDRAG Azt jelzi, hogy a jobb egérgomb egy húzási műveletet indított el.
TVN_DELETEITEM Egy adott elem törlését jelzi.
TVN_ENDLABELEDIT A címkeszerkesztés végét jelzi.
TVN_GETDISPINFO A fanézet vezérlő olyan információkat kér le, amelyek szükségesek egy elem megjelenítéséhez.
TVN_ITEMEXPANDED Azt jelzi, hogy egy szülőelem gyermekelemeinek listája kibővült vagy összehúzódott.
TVN_ITEMEXPANDING Azt jelzi, hogy a szülőelem gyermekelemeinek listája ki fog bontódni vagy össze fog csukódni.
TVN_KEYDOWN Billentyűzeteseményt jelez.
TVN_SELCHANGED Azt jelzi, hogy a kijelölés egyik elemről a másikra módosult.
TVN_SELCHANGING Azt jelzi, hogy a kijelölés hamarosan egyik elemről a másikra módosul.
TVN_SETDISPINFO Értesíti a szülőablakot, hogy frissítenie kell az elemhez tárolt információkat.

Alapértelmezett Tree-View vezérlőüzenetek feldolgozása

Ez a szakasz a fa nézet vezérlő által végzett ablaküzenet-feldolgozást ismerteti. A fa nézet vezérlőkre vonatkozó üzeneteket a dokumentum más szakaszaiban tárgyaljuk, ezért ezek itt nem szerepelnek.

Üzenet Leírás
WM_COMMAND Feldolgozza a EN_UPDATE és EN_KILLFOCUS szerkesztési értesítési üzeneteket, és továbbítja az összes többi szerkesztési vezérlőértesítést a szülőablakba. Nincs visszatérési érték.
WM_CREATE Lefoglalja a memóriát, és inicializálja a belső adatstruktúrákat. Ha sikeres, akkor nullát ad vissza, vagy egyébként -1.
WM_DESTROY Felszabadítja a vezérlőhöz társított összes rendszererőforrást. Nullát ad vissza.
WM_ENABLE Engedélyezi vagy letiltja a vezérlőt.
WM_ERASEBKGND Az ablak hátterét a fa nézet vezérlőelem aktuális háttérszínével törli. Az IGAZértéket adja vissza.
WM_GETDLGCODE A DLGC_WANTARROWS és DLGC_WANTCHARS é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 Görgeti a fa nézet vezérlőt. A függvény IGAZ értéket ad vissza, ha görgetés történik, vagy HAMIS értéket ellenkező esetben.
WM_KEYDOWN A TVN_KEYDOWN értesítési üzenet küldése a szülőablakba az összes kulcs esetében. A NM_RETURN (fa nézet) értesítési üzenetet küld, amikor a felhasználó lenyomja az ENTER billentyűt. Az inszerciós pont mozog, ha a felhasználó lenyomja az iránygombokat, vagy a PAGE UP, PAGE DOWN, HOME, END vagy BACKSPACE billentyűt. Addig görgeti a fa nézet vezérlőelemet, amíg a felhasználó egyszerre lenyomja a CTRL billentyűt és az egyéb billentyűket. A függvény IGAZ ad vissza, ha egy kulcs feldolgozásra kerül, vagy HAMIS ellenkező esetben.
WM_KILLFOCUS Ha van ilyen, újrafesti a fókuszált elemet, és egy NM_KILLFOCUS (fanézet) értesítési üzenetet küld a szülőablaknak.
WM_LBUTTONDBLCLK Megszakítja a címkeszerkesztéseket, és ha egy elemre duplán kattintott, a NM_DBLCLK (fanézet) értesítési üzenetet küld a szülőablakba. Ha a szülőablak 0 értéket ad vissza, a fa nézet vezérlő az elem kibontott állapotát változtatja meg, és elküldi a szülőablaknak a TVN_ITEMEXPANDING és TVN_ITEMEXPANDED értesítési üzeneteket. Nincs visszatérési érték.
WM_LBUTTONDOWN A kibontott állapot váltása, ha a felhasználó a szülőelemhez társított gombra kattintott. Ha a felhasználó egy elemcímkére kattintott, a fa nézetű vezérlő kijelöli és az elemre helyezi a fókuszt. Ha a felhasználó az egérgomb felengedése előtt mozgatja az egeret, a fa nézet vezérlő húzás és ejtés műveletet kezd. Nincs visszatérési érték.
WM_PAINT A fa nézet vezérlés érvénytelen régióját festi ki. Nullát ad vissza. Ha a wParam paraméter nemNULL, a vezérlő feltételezi, hogy az érték egy eszközkörnyezet (HDC) leírója, és az eszközkörnyezet használatával rajzol.
WM_RBUTTONDOWN Ellenőrzi, hogy egy elemre kattintott-e, és megkezdődött-e a húzási művelet. Ha a művelet elkezdődött, egy TVN_BEGINRDRAG értesítési üzenetet küld a szülőablakba, és kiemeli a célpontot. Ellenkező esetben egy NM_RCLICK (fanézet) értesítési üzenetet küld a szülőablakba. Nincs visszatérési érték.
WM_SETFOCUS Ha van ilyen, újrafesti a szűrt elemet, és egy NM_SETFOCUS értesítési üzenetet küld a szülőablakba.
WM_SETFONT Elmenti a megadott betűtípus fogantyút, és újrafesti a fanézet vezérlőt az új betűtípussal.
WM_SETREDRAW Beállítja vagy törli az újrarajzolási jelzőt. A fa nézet vezérlő újrarajzolásra kerül az újrarajzolási jelző beállítása után. Nullát ad vissza.
WM_SIZE A fa nézet vezérlő ügyfélterületének méretétől függő belső változók újraszámítása. Az IGAZértéket adja vissza.
WM_STYLECHANGED Lemondja a címkeszerkesztést, és újrarajzolja a fa nézet vezérlőelemet az új stílusok használatával. Nullát ad vissza.
WM_SYSCOLORCHANGE Ha a redraw jelző be van állítva, a fanézet vezérlőelem az új színnel kerül újrarajzolásra. Nincs visszatérési érték.
WM_TIMER Megkezdi az elemcímkék szerkesztését. Ha a felhasználó a szűrt elem feliratára kattint, a fanézet vezérlő beállít egy időzítőt a szerkesztési mód azonnali megadása helyett. Az időzítő lehetővé teszi, hogy a fanézet elkerülje a szerkesztési módot, ha a felhasználó duplán kattint a címkére. Nullát ad vissza.
WM_VSCROLL Görgeti a fa nézet vezérlőt. A függvény IGAZ értéket ad vissza, ha görgetés történik, vagy HAMIS értéket ellenkező esetben.