Over Tree-View besturingselementen
Een controle-element voor structuurweergave is een venster dat een hiërarchische lijst met items weergeeft, zoals de koppen in een document, de vermeldingen in een index, of de bestanden en mappen op een schijf. Elk item bestaat uit een label en een optionele bitmapafbeelding en elk item kan een lijst met subitems bevatten die eraan zijn gekoppeld. Door op een item te klikken, kan de gebruiker de bijbehorende lijst met subitems uitvouwen of samenvouwen.
In de volgende afbeelding ziet u een eenvoudig besturingselement voor structuurweergave met een hoofdknooppunt, een uitgevouwen knooppunt en een samengevouwen knooppunt. Het besturingselement gebruikt één bitmap voor het geselecteerde item en een andere bitmap voor andere items.
Nadat u een besturingselement voor structuurweergave hebt gemaakt, kunt u items toevoegen, verwijderen, rangschikken of anderszins bewerken door berichten naar het besturingselement te verzenden. Elk bericht heeft een of meer bijbehorende macro's die u kunt gebruiken in plaats van het bericht expliciet te verzenden.
De volgende onderwerpen worden in deze sectie besproken.
- Tree-View stijlen
- Ouder- en kinditems
- Itemlabels
- Tree-View Labelbewerking
- Tree-View artikelpositie
- Overzicht van Tree-View itemstatussen
- Itemselectie
- itemgegevens
- Tree-View afbeeldingslijsten
- Bewerkingen voor Slepen en Neerzetten
- Tree-View Meldingsberichten beheren
- standaard Tree-View controle berichtverwerking
- Verwante onderwerpen
Tree-View stijlen
Stijlen voor structuurweergaven bepalen aspecten van het uiterlijk van een structuurweergave-element. U stelt de initiële stijlen in wanneer u het boomstructuurweergave aanmaakt. U kunt de stijlen ophalen en wijzigen nadat u het besturingselement voor structuurweergave hebt gemaakt met behulp van de functies GetWindowLong en SetWindowLong.
De stijl TVS_HASLINES verbetert de grafische weergave van de hiërarchie van een structuurweergavebesturingselement door lijnen te tekenen die onderliggende items aan het bovenliggende item koppelen, zoals wordt weergegeven in de volgende afbeelding.
Deze stijl tekent zelf geen lijnen bij de wortel van de hiërarchie. Hiervoor moet u de stijlen TVS_HASLINES en TVS_LINESATROOT combineren. Het resultaat wordt weergegeven in de volgende afbeelding.
De gebruiker kan de lijst met onderliggende items van een bovenliggend item uitvouwen of samenvouwen door te dubbelklikken op het bovenliggende item. Een structuurweergave-element met de stijl TVS_HASBUTTONS voegt een knop toe aan de linkerkant van elk bovenliggende item. De gebruiker kan eenmaal op de knop klikken in plaats van op het bovenliggende item te dubbelklikken om het onderliggende element uit te vouwen of in te klappen. TVS_HASBUTTONS voegt geen knoppen toe aan items in de wortel van de hiërarchie. Hiervoor moet u TVS_HASLINES, TVS_LINESATROOTen TVS_HASBUTTONScombineren. Deze combinatie van stijlen wordt weergegeven in de volgende afbeelding.
Met de stijl TVS_CHECKBOXES worden selectievakjes naast elk item gemaakt. Als u de stijl van het selectievakje wilt gebruiken, moet u de stijl TVS_CHECKBOXES (met SetWindowLong) instellen nadat u het besturingselement voor de structuurweergave hebt gemaakt en voordat u de structuur vult. Anders worden de selectievakjes mogelijk uitgeschakeld weergegeven, afhankelijk van tijdsproblemen. In de volgende afbeelding ziet u de stijl van het selectievakje.
De stijl TVS_FULLROWSELECT zorgt ervoor dat de selectiemarkering wordt uitgebreid over de volledige breedte van het besturingselement, niet alleen over het item zelf. In de volgende afbeelding ziet u deze stijl.
Met de stijl TVS_EDITLABELS kan de gebruiker de labels van items in de structuurweergave bewerken. Zie Tree-View Label bewerkenvoor meer informatie over het bewerken van labels.
Zie Tree-View Vensterstijlen voor besturingselementenvoor meer informatie over deze en andere stijlen.
Hoofd- en sub-items
Elk item in een boomstructuur kan een lijst met subitems bevatten, onderliggende itemsgenoemd, die ermee verbonden zijn. Een item met een of meer onderdelen wordt een ouderitemgenoemd. Een onderliggend item wordt onder het bovenliggende item weergegeven en is ingesprongen om aan te geven dat het ondergeschikt is aan het bovenliggende item. Een item zonder bovenliggende item wordt boven aan de hiërarchie weergegeven en wordt een hoofditemgenoemd.
Als u een item wilt toevoegen aan een besturingselement voor structuurweergave, verzendt u het TVM_INSERTITEM bericht naar het besturingselement. Het bericht geeft een verwijzing naar het HTREEITEM-type terug, waarmee het item uniek geïdentificeerd wordt. Wanneer u een item toevoegt, moet u de verwijzing naar het bovenliggende item van het nieuwe item opgeven. Als u NULL of de TVI_ROOT waarde opgeeft in plaats van een bovenliggende itemgreep in de structuur TVINSERTSTRUCT, wordt het item toegevoegd als een hoofditem.
Op elk gewenst moment kan de status van de lijst met onderliggende items van een bovenliggend item worden uitgevouwen of samengevouwen. Wanneer de staat is uitgebreid, worden de kinditems onder de bovenliggende item weergegeven. Wanneer deze is samengevouwen, worden de onderliggende items niet weergegeven. De lijst schakelt automatisch tussen de uitgevouwen en samengevouwen statussen wanneer de gebruiker dubbelklikt op het bovenliggende item of, als het bovenliggende item de stijl TVS_HASBUTTONS heeft, wanneer de gebruiker op de knop klikt die is gekoppeld aan het bovenliggende item. Een toepassing kan de onderliggende items uitvouwen of samenvouwen met behulp van een TVM_EXPAND bericht.
Een besturingselement voor structuurweergave verzendt het oudervenster een TVN_ITEMEXPANDING meldingsbericht wanneer de lijst met onderliggende items van een bovenliggend item op het punt staat om uit te breiden of samen te vouwen. De melding biedt een toepassing de mogelijkheid om de wijziging te voorkomen of om kenmerken van het bovenliggende item in te stellen die afhankelijk zijn van de status van de lijst met onderliggende items. Nadat de status van de lijst is gewijzigd, verzendt de boomweergave het bovenliggende venster een TVN_ITEMEXPANDED melding.
Wanneer een lijst met subitems wordt uitgevouwen, wordt deze ingesprongen ten opzichte van het bovenliggende item. U kunt de hoeveelheid inspringing instellen met behulp van het TVM_SETINDENT bericht of het huidige bedrag ophalen met behulp van het TVM_GETINDENT bericht.
Een besturingselement voor structuurweergave maakt gebruik van geheugen dat is toegewezen vanuit de heap van het proces waarmee het besturingselement voor structuurweergave wordt gemaakt. Het maximum aantal items in een structuurweergave is gebaseerd op de hoeveelheid geheugen die beschikbaar is in de heap.
Item Labels
Normaal gesproken specificeert u de tekst van het label van een item wanneer u het item toevoegt aan de boomstructuurweergave. Het TVM_INSERTITEM bericht bevat een TVITEM- structuur waarmee de eigenschappen van het item worden gedefinieerd, inclusief een tekenreeks die de tekst van het label bevat.
Een besturingselement voor structuurweergave wijst geheugen toe voor het opslaan van elk item; de tekst van de itemlabels neemt een aanzienlijk deel van dit geheugen in beslag. Als uw toepassing een kopie van de tekenreeksen in het besturingselement voor structuurweergave onderhoudt, kunt u de geheugenvereisten van het besturingselement verlagen door de LPSTR_TEXTCALLBACK waarde op te geven in de pszText lid van TVITEM- in plaats van werkelijke tekenreeksen door te geven aan de structuurweergave. Wanneer u LPSTR_TEXTCALLBACK gebruikt, haalt de tree-view controle de tekst van het etiket van een item op uit het bovenliggende venster telkens wanneer het item opnieuw moet worden getekend. Om de tekst op te halen, verzendt het besturingselement boomweergave een TVN_GETDISPINFO meldingsbericht, dat het adres van een NMTVDISPINFO structuur bevat. Het bovenliggende venster moet de juiste leden van de opgenomen structuur vullen.
Tree-View bewerken van labels
De gebruiker kan de labels van items rechtstreeks bewerken in een structuurweergavebesturingselement met de stijl TVS_EDITLABELS. De gebruiker begint met bewerken door te klikken op het label van het item met de focus. Een toepassing begint met bewerken met behulp van het TVM_EDITLABEL bericht. Het besturingselement voor structuurweergave meldt het bovenliggende venster wanneer het bewerken begint en wanneer het wordt geannuleerd of voltooid. Wanneer het bewerken is voltooid, is het bovenliggende venster verantwoordelijk voor het bijwerken van het label van een item, indien dit van toepassing is.
Wanneer het bewerken van labels begint, verzendt een boomweergavebesturingselement het bovenliggende venster een TVN_BEGINLABELEDIT meldingsbericht. Door deze melding te verwerken, kan een toepassing het bewerken van sommige labels toestaan en bewerken van andere labels voorkomen. Het teruggeven van nul maakt bewerken mogelijk, en het teruggeven van een andere waarde dan nul voorkomt het.
Wanneer het bewerken van labels is geannuleerd of voltooid, verzendt een boomweergavebesturingselement het bovenliggende venster een TVN_ENDLABELEDIT meldingsbericht. De parameter lParam is het adres van een NMTVDISPINFO structuur. De parameter item is een TVITEM- structuur die het item identificeert en de bewerkte tekst bevat. Het bovenliggende venster is verantwoordelijk voor het bijwerken van het label van het item als het het nieuwe label wil behouden. Het pszText-lid van TVITEM is null als het bewerken wordt geannuleerd.
Tijdens het bewerken van labels kunt u, meestal in reactie op het TVN_BEGINLABELEDIT meldingsbericht, de ingang ophalen voor het bewerkingsbesturingselement dat wordt gebruikt voor het bewerken van labels met behulp van het TVM_GETEDITCONTROL bericht. U kunt een EM_SETLIMITTEXT bericht naar de bewerkingscontrole verzenden om de hoeveelheid tekst te beperken die een gebruiker kan invoeren of de bewerkingscontrole subklasseer om ongeldige tekens te onderscheppen en verwijderen. Houd er echter rekening mee dat het bewerkingsbesturingselement pas wordt weergegeven nadat TVN_BEGINLABELEDIT is verzonden, alleen daarna.
Positie van item Tree-View
De initiële positie van een item wordt ingesteld wanneer het item wordt toegevoegd aan het besturingselement structuurweergave met behulp van het TVM_INSERTITEM bericht. Het bericht bevat een TVINSERTSTRUCT structuur die de ingang aan het bovenliggende item en de ingang aan het item aangeeft waarna het nieuwe item moet worden ingevoegd. De tweede handvat moet een kinditem van het opgegeven bovenliggende item of een van deze waarden identificeren: TVI_FIRST, TVI_LAST of TVI_SORT.
Wanneer TVI_FIRST of TVI_LAST is opgegeven, plaatst het besturingselement voor structuurweergave het nieuwe item aan het begin of einde van de lijst met onderliggende items van het opgegeven bovenliggende item. Wanneer TVI_SORT is opgegeven, voegt de boomweergavecontrol het nieuwe item in in de lijst met subitems in alfabetische volgorde op basis van de tekst van de itemetiketten.
U kunt de lijst met onderliggende items van een bovenliggend item in alfabetische volgorde plaatsen met behulp van het TVM_SORTCHILDREN bericht. Het bericht bevat een parameter die aangeeft of alle lagen van onderliggende items die afstammen van het opgegeven ouderelement, ook in alfabetische volgorde worden gesorteerd.
Met het TVM_SORTCHILDRENCB-bericht kunt u subitems sorteren op basis van door u gedefinieerde criteria. Wanneer u dit bericht gebruikt, specificeert u een applicatiegedefinieerde callback-functie die door het structuurweergave-bedieningselement kan worden aangeroepen wanneer de relatieve volgorde van twee onderliggende items moet worden bepaald. De callback-functie ontvangt twee 32-bits toepassingsgedefinieerde waarden voor de items die worden vergeleken en een derde 32-bits waarde die u opgeeft bij het verzenden van TVM_SORTCHILDRENCB.
Overzicht van Tree-View itemstatussen
Elk item in een besturingselement voor structuurweergave heeft een huidige status. De statusinformatie voor elk item bevat een set bitvlaggen en indexen in de lijst met afbeeldingen die de statusafbeelding en overlay-afbeelding van het item aangeven. De bitvlaggen geven aan of het item is geselecteerd, uitgeschakeld, uitgevouwen, enzovoort. Voor het grootste deel stelt een besturingselement voor structuurweergave automatisch de status van een item in op basis van gebruikersacties, zoals het selecteren van een item. U kunt echter ook de status van een item instellen met behulp van het TVM_SETITEM bericht en u kunt de huidige status van een item ophalen met behulp van het TVM_GETITEM bericht. Zie Tree-View Controle-itemstatussenvoor een volledige lijst met itemstatussen.
De huidige status van een item wordt opgegeven door de status lid van de TVITEM- structuur. Een besturingselement voor structuurweergave kan de status van een item wijzigen naar aanleiding van een gebruikersactie, zoals het selecteren van het item of het instellen van de focus op het item. Bovendien kan een toepassing de status van een item wijzigen om het item uit te schakelen of te verbergen of om een overlayafbeelding of statusafbeelding op te geven.
Wanneer u de status van een item opgeeft of wijzigt, geeft het statusmasker lid van TVITEM- aan welke status-bits moeten worden ingesteld en bevat het staat lid de nieuwe waarden voor die bits.
Als u de overlayafbeelding van een item wilt instellen, moet statemask de TVIS_OVERLAYMASK-waarde bevatten en moet status de op één gebaseerde index van de overlayafbeelding 8 bits naar links verschoven bevatten, met behulp van de INDEXTOOVERLAYMASK macro. De index kan nul zijn om geen overlayafbeelding op te geven.
Er wordt een statusafbeelding weergegeven naast het pictogram van een item om een door de toepassing gedefinieerde status aan te geven. Statusafbeeldingen bevinden zich in een lijst met statusafbeeldingen die is opgegeven door een TVM_SETIMAGELIST bericht te verzenden. Als u de statusafbeelding van een item wilt instellen, neemt u de TVIS_STATEIMAGEMASK waarde op in de statusmasker lid van de TVITEM- structuur. Bits 12 tot en met 15 van de status van het structuurlid specificeren de index in de statusbeeldlijst van de afbeelding die getekend moet worden.
Als u de statusafbeeldingsindex wilt instellen, gebruikt u INDEXTOSTATEIMAGEMASK. Deze macro maakt gebruik van een index en stelt bits 12 tot en met 15 op de juiste manier in. Als u wilt aangeven dat het item geen statusafbeelding heeft, stelt u de index in op nul. Deze conventie betekent dat afbeelding nul in de lijst met statusafbeeldingen niet kan worden gebruikt als een statusafbeelding. Als u bits 12 tot en met 15 van het statuslid wilt isoleren, gebruikt u de TVIS_STATEIMAGEMASK mask. Zie Tree-View Afbeeldingslijstenvoor meer informatie over overlay- en statusafbeeldingen.
Itemselectie
Een boomstructuuropzicht besturingselement brengt het bovenliggende venster op de hoogte wanneer de selectie verandert van het ene item naar het andere door de TVN_SELCHANGING en TVN_SELCHANGED meldingsberichten te verzenden. Beide meldingen bevatten een waarde die aangeeft of de wijziging het resultaat is van een muisklik of een toetsaanslag. De meldingen bevatten ook informatie over het item dat de selectie krijgt en het item dat de selectie verliest. U kunt deze informatie gebruiken om itemkenmerken in te stellen die afhankelijk zijn van de selectiestatus van het item. Het retourneren van TRUE in reactie op TVN_SELCHANGING voorkomt dat de selectie verandert, terwijl het retourneren van FALSE de wijziging toestaat.
Een toepassing kan de selectie wijzigen door het TVM_SELECTITEM bericht te verzenden.
Itemgegevens
Besturingselementen voor structuurweergave ondersteunen een aantal berichten waarmee informatie over items in het besturingselement wordt opgehaald.
Het TVM_GETITEM bericht kan het handvat en de attributen van een item ophalen. De kenmerken van een item bevatten de huidige status, de indexen in de lijst met afbeeldingen van het besturingselement van de geselecteerde en niet-geselecteerde bitmapafbeeldingen van het item, een vlag die aangeeft of het item onderliggende items bevat, het adres van de labeltekenreeks van het item en de toepassingsgedefinieerde 32-bits waarde van het item.
Het TVM_GETNEXTITEM bericht haalt het structuurweergave-item op dat de opgegeven relatie met het huidige item draagt. Het bericht kan het bovenliggende item van een item, het volgende of vorige zichtbare item, het eerste kinditem, enzovoort ophalen.
Het TVM_GETITEMRECT bericht haalt de begrenzingsrechthoek voor een item in de structuurweergave op. De TVM_GETCOUNT- en TVM_GETVISIBLECOUNT-berichten halen respectievelijk het aantal items op in een besturingselement voor structuurweergaven en het aantal items dat volledig zichtbaar is in het venster van het besturingselement voor de structuurweergave. U kunt ervoor zorgen dat een bepaald item zichtbaar is met behulp van het TVM_ENSUREVISIBLE bericht.
Tree-View Afbeeldingslijsten
Aan elk item in een boomstructuurweergave kunnen vier bitmap-afbeeldingen zijn gekoppeld.
- Een afbeelding, zoals een geopende map, die wordt weergegeven wanneer het item is geselecteerd.
- Een afbeelding, zoals een gesloten map, wordt weergegeven wanneer het item niet is geselecteerd.
- Een overlayafbeelding die transparant over de geselecteerde of niet-geselecteerde afbeelding wordt getekend.
- Een statusafbeelding, een extra afbeelding die links van de geselecteerde of niet-geselecteerde afbeelding wordt weergegeven. U kunt statusafbeeldingen, zoals ingeschakelde en uitgeschakelde selectievakjes, gebruiken om door de toepassing gedefinieerde itemstatussen aan te geven.
Standaard worden in een boomstructuurweergave geen itemafbeeldingen weergegeven. Als u itemafbeeldingen wilt weergeven, moet u afbeeldingslijsten maken en deze koppelen aan het besturingselement. Zie Afbeeldingslijstenvoor meer informatie over afbeeldingslijsten.
Een besturingselement voor structuurweergave kan twee afbeeldingslijsten hebben: een normale lijst met afbeeldingen en een lijst met statusafbeeldingen. In een normale lijst met afbeeldingen worden de geselecteerde, niet-geselecteerde en overlay-afbeeldingen opgeslagen. In een lijst met statusafbeeldingen worden statusafbeeldingen opgeslagen. Gebruik de functie ImageList_Create om een lijst met afbeeldingen te maken en gebruik andere functies voor de lijst met afbeeldingen om bitmaps toe te voegen aan de lijst met afbeeldingen. Gebruik vervolgens de TVM_SETIMAGELIST mededeling om de lijst met afbeeldingen te koppelen aan de boomstructuurweergavebesturing. Het TVM_GETIMAGELIST bericht haalt een verwijzing op naar een van de afbeeldingslijsten van een boomweergavecontrole. Dit bericht is handig als u meer afbeeldingen aan de lijst wilt toevoegen.
Naast de geselecteerde en niet-geselecteerde afbeeldingen kan de normale lijst met afbeeldingen in een structuurweergave maximaal vier overlayafbeeldingen bevatten. Overlay-afbeeldingen worden geïdentificeerd door een op één gebaseerde index en zijn ontworpen om transparant over de geselecteerde en niet-geselecteerde afbeeldingen te worden getekend. Als u een overlaymaskerindex wilt toewijzen aan een afbeelding in de normale lijst met afbeeldingen, roept u de functie ImageList_SetOverlayImage aan.
Standaard geven alle items de eerste afbeelding weer in de normale lijst met afbeeldingen voor zowel de geselecteerde als niet-geselecteerde statussen. Bovendien worden in items standaard geen overlayafbeeldingen of statusafbeeldingen weergegeven. U kunt dit standaardgedrag voor een item wijzigen door het TVM_INSERTITEM of TVM_SETITEM bericht te verzenden. Deze berichten gebruiken de TVITEM- structuur om indexen voor afbeeldingenlijsten voor een item op te geven.
Als u de geselecteerde en niet-geselecteerde afbeeldingen van een item wilt opgeven, stelt u de TVIF_SELECTEDIMAGE- en TVIF_IMAGE bits in het masker in lid van de TVITEM- structuur en geeft u indexen op uit de normale lijst met afbeeldingen van het besturingselement in de iSelectImage- en iImage leden. U kunt ook de I_IMAGECALLBACK waarde opgeven in iSelectImage- en iImage in plaats van indexen op te geven. Dit zorgt ervoor dat het besturingselement zijn bovenliggende venster bevraagt voor een index van een afbeeldingslijst, telkens wanneer het item opnieuw getekend moet worden. Het besturingselement verzendt het TVN_GETDISPINFO meldingsbericht om de index op te halen.
Als u een overlayafbeelding aan een item wilt koppelen, gebruikt u de macro INDEXTOOVERLAYMASK om een overlaymaskerindex op te geven in de staat member van de TVITEM- structuur van het item. U moet ook de TVIS_OVERLAYMASK bits instellen in het stateMask element. Overlaymaskerindexen beginnen bij één; een index van nul geeft aan dat er geen overlay afbeelding is opgegeven.
Statusafbeeldingen worden opgeslagen in een afzonderlijke lijst met statusafbeeldingen en geïdentificeerd door hun index. Als u de lijst met statusafbeeldingen wilt opgeven, verzendt u een TVM_SETIMAGELIST bericht. In tegenstelling tot het besturingselement voor lijstweergave, dat gebruikmaakt van een op één gebaseerde index om statusafbeeldingen te identificeren, worden statusafbeeldingen van de boomweergave geïdentificeerd door een index op basis van nul. Een index van nul geeft echter aan dat het item geen statusafbeelding heeft. Daarom kan afbeelding nul niet worden gebruikt als een statusafbeelding. Zie Tree-View Overzicht van itemstatussenvoor meer informatie over itemstatussen en statusafbeeldingen.
Slepen en neerzetten
Een besturingselement voor structuurweergave geeft een melding aan het bovenliggende venster wanneer de gebruiker een item begint te slepen. Het bovenliggende venster ontvangt een TVN_BEGINDRAG meldingsbericht wanneer de gebruiker een item begint te slepen met de linkermuisknop en een TVN_BEGINRDRAG meldingsbericht wanneer de gebruiker met de rechterknop begint te slepen. U kunt voorkomen dat een besturingselement voor structuurweergave deze meldingen verzendt door het besturingselement voor structuurweergave de stijl TVS_DISABLEDRAGDROP te geven.
Je verkrijgt een afbeelding die tijdens een sleepbewerking moet worden weergegeven met behulp van het TVM_CREATEDRAGIMAGE bericht . Het besturingselement structuurweergave maakt een slepende bitmap op basis van het label van het item dat wordt gesleept. Vervolgens maakt het boomstructuurbesturingselement een afbeeldingslijst aan, voegt de bitmap hieraan toe en retourneert het handvat naar de afbeeldingslijst.
U moet de code opgeven die het item daadwerkelijk sleept. Dit omvat meestal het gebruik van de sleepmogelijkheden van de functies voor de lijst met afbeeldingen en het verwerken van de berichten WM_MOUSEMOVE en WM_LBUTTONUP (of WM_RBUTTONUP) die naar het bovenliggende venster worden verzonden nadat de sleepbewerking is gestart.
Als items in een besturingselement voor structuurweergave de doelen van slepen en neerzetten moeten zijn, moet u weten wanneer de muisaanwijzer zich op een doelitem bevindt. U kunt dit achterhalen met behulp van het TVM_HITTEST bericht. U geeft het adres op van een TVHITTESTINFO structuur die de huidige coördinaten van de muis aanwijzer bevat. Wanneer de SendMessage functie retourneert, bevat de structuur een indicator die de locatie aangeeft van de muisaanwijzer ten opzichte van het besturingselement voor de boomweergave. Als de aanwijzer zich boven een item in de boomweergave bevindt, bevat de structuur ook de handle voor het item.
U kunt aangeven dat een item het doel is van een slepen-en-neerzetten-bewerking met behulp van het TVM_SETITEM bericht om de status in te stellen op de TVIS_DROPHILITED waarde. Een item dat zich in deze toestand bevindt, wordt getekend in de stijl die wordt gebruikt om een doel voor slepen en neerzetten aan te geven.
Tree-View Meldingsberichten beheren
Een besturingselement voor structuurweergave verzendt de volgende meldingsberichten naar het bovenliggende venster in de vorm van WM_NOTIFY berichten.
Melding | Beschrijving |
---|---|
TVN_BEGINDRAG | Geeft het begin van een slepen-en-neerzetten-bewerking aan. |
TVN_BEGINLABELEDIT | Geeft het begin aan van het bewerken van labels ter plaatse. |
TVN_BEGINRDRAG | Signalen dat de rechtermuisknop een slepen-en-neerzetten-bewerking heeft gestart. |
TVN_DELETEITEM | Geeft de verwijdering van een specifiek item aan. |
TVN_ENDLABELEDIT | Geeft het einde van labelbewerking aan. |
TVN_GETDISPINFO | Het vraagt informatie op die het besturingselement voor de structuurweergave nodig heeft om een item weer te geven. |
TVN_ITEMEXPANDED | Geeft aan dat de lijst met kinditems van een ouderitem is uitgevouwen of samengevouwen. |
TVN_ITEMEXPANDING | Signaleert dat de lijst van kinditems binnen een bovenliggend item op het punt staat te worden uitgevouwen of ingeklapt. |
TVN_KEYDOWN | Signaleert een toetsenbordgebeurtenis. |
TVN_SELCHANGED | Geeft aan dat de selectie is gewijzigd van het ene item naar het andere. |
TVN_SELCHANGING | Geeft aan dat de selectie van het ene item naar het andere wordt gewijzigd. |
TVN_SETDISPINFO | Meldt aan een bovenliggend venster dat het de informatie moet bijwerken die het voor een item bijhoudt. |
Standaard Tree-View berichtverwerking beheren
In deze sectie wordt de verwerking van vensterberichten beschreven die worden uitgevoerd door een besturingselement voor structuurweergave. Berichten die specifiek zijn voor besturingselementen voor structuurweergave, worden besproken in andere secties van dit document, dus deze zijn hier niet opgenomen.
Bericht | Verwerking uitgevoerd |
---|---|
WM_COMMAND | Hiermee worden de EN_UPDATE en EN_KILLFOCUS meldingen van bewerkingsbesturingselementen bewerkt en worden alle andere meldingen van bewerkingsbesturingselementen doorgestuurd naar het oudervenster. Er is geen retourwaarde. |
WM_CREATE | Wijst geheugen toe en initialiseert interne gegevensstructuren. Het geeft nul terug als het succesvol is, of anders -1. |
WM_DESTROY | Hiermee worden alle systeembronnen die aan het besturingselement zijn gekoppeld, vrijgemaakt. Retourneert nul. |
WM_ENABLE | Hiermee schakelt u het besturingselement in of uit. |
WM_ERASEBKGND | Hiermee wordt de achtergrond van het venster gewist met behulp van de huidige achtergrondkleur voor het besturingselement structuurweergave. Het retourneert TRUE-. |
WM_GETDLGCODE | Retourneert een combinatie van de DLGC_WANTARROWS en DLGC_WANTCHARS waarden. |
WM_GETFONT | Retourneert de ingang naar het huidige lettertype van het label. |
WM_HSCROLL | Schuift het besturingselement voor structuurweergave. Het retourneert WAAR als schuiven plaatsvindt, of ONWAAR anders. |
WM_KEYDOWN | Stuurt het TVN_KEYDOWN meldingsbericht naar het oudervenster voor alle toetsen. Hiermee wordt het NM_RETURN (boomstructuurweergave) meldingsbericht verzonden wanneer de gebruiker op de ENTER-toets drukt. De caret wordt verplaatst wanneer de gebruiker op de richtingstoetsen drukt of op de toets PAGE UP, PAGE DOWN, HOME, END of BACKSPACE. Het scrollt de boomstructuurweergave wanneer de gebruiker de Ctrl-toets indrukt in combinatie met andere toetsen. Het retourneert TRUE als een sleutel wordt verwerkt, of FALSE anders. |
WM_KILLFOCUS | Hiermee wordt het gefocusde item, indien van toepassing, opnieuw getekend en wordt een NM_KILLFOCUS (structuurweergave) meldingsbericht naar het oudervenster verzonden. |
WM_LBUTTONDBLCLK | Annuleert het bewerken van labels en als er op een item is gedubbelklikt, stuurt het de NM_DBLCLK (boomweergave)-bericht naar het bovenliggende venster. Als het bovenliggende venster 0 retourneert, schakelt het structuurweergave-besturingselement de uitgevouwen status van het item om, waarbij de meldingsberichten TVN_ITEMEXPANDING en TVN_ITEMEXPANDED naar het bovenliggende venster worden verzonden. Er is geen retourwaarde. |
WM_LBUTTONDOWN | Hiermee schakelt u de uitgevouwen toestand in wanneer de gebruiker op de knop heeft geklikt die is gekoppeld aan een bovenliggend item. Als de gebruiker op een itemlabel heeft geklikt, selecteert en stelt het besturingselement voor de structuurweergave de focus op het item in. Wanneer de gebruiker de muis verplaatst voordat hij de muisknop loslaat, start de boomweergave een sleep-en-neerzet-bewerking. Er is geen retourwaarde. |
WM_PAINT | Verft het ongeldige gebied van het boomstructuurweergave-element. Het geeft nul. Als de parameter wParam niet-NULL-is, wordt ervan uitgegaan dat de waarde een handle is naar een apparaatcontext (HDC) en wordt dat apparaatcontext gebruikt. |
WM_RBUTTONDOWN | Controleert of er op een item is geklikt en er een sleepbewerking is gestart. Als de bewerking is gestart, wordt er een TVN_BEGINRDRAG meldingsbericht naar het bovenliggende venster verzonden en wordt het doel voor neerzetten gemarkeerd. Anders wordt er een NM_RCLICK (structuurweergave) meldingsbericht naar het oudervenster verzonden. Er is geen retourwaarde. |
WM_SETFOCUS | Hiermee wordt het gefocuste item, indien aanwezig, opnieuw weergegeven en wordt een NM_SETFOCUS meldingsbericht naar het bovenliggende venster verzonden. |
WM_SETFONT | Hiermee wordt de opgegeven lettertypehandler opgeslagen en wordt het besturingselement voor de structuurweergave opnieuw geschilderd met behulp van het nieuwe lettertype. |
WM_SETREDRAW | Stelt de markering voor opnieuw tekenen in of wist deze. Het besturingselement structuurweergave wordt opnieuw getekend nadat de vlag voor opnieuw tekenen is ingesteld. Het geeft nul terug. |
WM_SIZE | Hiermee worden interne variabelen opnieuw berekend die afhankelijk zijn van de grootte van het clientgebied van het structuurweergavebesturingselement. Het retourneert TRUE. |
WM_STYLECHANGED | Hiermee annuleert u het bewerken van labels en tekent u de boomstructuurweergave opnieuw met behulp van de nieuwe stijlen. Het geeft nul terug. |
WM_SYSCOLORCHANGE | Hiermee tekent u het besturingselement van de boomstructuur opnieuw met de nieuwe kleur als de markering voor opnieuw tekenen is ingesteld. Er is geen retourwaarde. |
WM_TIMER | Begint met het bewerken van een itemlabel. Als de gebruiker op het label van het item met prioriteit klikt, stelt het besturingselement voor structuurweergave een timer in in plaats van de bewerkingsmodus onmiddellijk in te schakelen. De timer maakt het mogelijk voor de structuurweergave om te voorkomen dat de bewerkingsmodus wordt geactiveerd als de gebruiker dubbelklikt op het label. Het retourneert nul. |
WM_VSCROLL | Scrollt het boomstructuurweergave-besturingselement. Het retourneert TRUE als schuiven plaatsvindt of ONWAAR anders. |
Verwante onderwerpen