Delen via


Wizards maken

Een wizard is een type eigenschappenvenster dat een eenvoudige en krachtige manier biedt om gebruikers door een procedure te leiden.

Wizards zijn een van de sleutels om de gebruikerservaring te vereenvoudigen. Hiermee kunt u een complexe bewerking uitvoeren, zoals de configuratie van een toepassing, en deze opsplitsen in een reeks eenvoudige stappen. Op elk punt in het proces kunt u een uitleg geven over wat er nodig is en besturingselementen weergeven waarmee de gebruiker selecties kan maken en tekst kan invoeren.

Een wizard is een soort eigenschappenvenster. Een eigenschappenvenster is in feite een container voor een verzameling pagina's, waarbij elke pagina een afzonderlijk dialoogvenster is. Terwijl gewone eigenschappenvensters de gebruiker op elk gewenst moment toegang geven tot pagina's, worden pagina's op volgorde weergegeven in wizards. In plaats van tabbladen worden knoppen gebruikt om vooruit en achteruit te navigeren. De volgorde waarin pagina's worden weergegeven, wordt beheerd door de toepassing en kan worden gewijzigd op basis van gebruikersinvoer.

Er zijn twee hoofdstijlen van de wizard: de oudere Wizard97-stijl en de Aero-stijl die is geïntroduceerd in Windows Vista. Zie Over eigenschappenbladenvoor illustraties. (Een derde stijl, waarbij alleen de vlag PSH_WIZARD of PSH_WIZARD_LITE wordt gebruikt, geeft een eenvoudige reeks eigenschappenbladen zonder kop- of watermerken weer.)

Notitie

Een watermerk in de context van wizards is een bitmap die wordt weergegeven in de linkermarge van sommige pagina's.

 

In de meeste van dit document wordt ervan uitgegaan dat u een wizard voor een systeem implementeert met versie 5.80 of hoger van de algemene besturingselementen. Als u de wizard97-stijl probeert te gebruiken met eerdere versies van de algemene besturingselementen, kan uw toepassing worden gecompileerd, maar wordt deze niet correct weergegeven. Voor een discussie over hoe u een Wizard97-compatibele wizard op oudere systemen kunt maken, zie Wizards die compatibel zijn met eerdere systemen verderop in dit onderwerp.

Wat u moet weten

Technologieën

Voorwaarden

  • C/C++
  • Programmeren van Windows-gebruikersinterface

Aanwijzingen

Implementatie van wizard

Het implementeren van een wizard is vergelijkbaar met het implementeren van een normaal eigenschappenvenster. Op het meest elementaire niveau is het een kwestie van het instellen van een van de volgende vlaggen of combinaties van vlaggen in de PROPSHEETHEADER structuur waarmee het eigenschappenvenster wordt gedefinieerd.

Vlag Stijl
PSH_WIZARD Een eenvoudige wizard zonder kopteksten of bitmapafbeeldingen.
PSH_WIZARD_LITE Vergelijkbaar met PSH_WIZARD, met enkele kleine verschillen in uiterlijk; De scheidingslijn boven de knoppen wordt bijvoorbeeld ingesteld op de volledige breedte van het venster.
PSH_WIZARD97 Een Wizard97-wizard met (optionele) kopteksten, header-bitmaps en watermerken.
PSH_WIZARD | PSH_AEROWIZARD Een Aero Wizard. Aero Wizards gebruiken geen watermerken of koptekst bitmaps. Ze hebben het STA-model (single threaded apartment) nodig.

 

De basisprocedure voor het implementeren van een wizard is als volgt:

  1. Maak een dialoogvenstersjabloon voor elke pagina.
  2. Definieer de pagina's door een PROPSHEETPAGE te maken structuur voor elke pagina. Deze structuur definieert de pagina en bevat aanwijzers naar de dialoogvenstersjabloon en eventuele bitmaps of andere resources.
  3. Geef de PROPSHEETPAGE structuur door die in de vorige stap is gemaakt aan de CreatePropertySheetPage functie om de HPROPSHEETPAGE-handle van de pagina te maken.
  4. Definieer de wizard door er een PROPSHEETHEADER- structuur voor te maken.
  5. Geef de PROPSHEETHEADER- structuur door aan de functie PropertySheetom de wizard weer te geven.
  6. Implementeer dialoogvensterprocedures voor elke pagina voor het afhandelen van meldingsberichten van de besturingselementen van de pagina en de knoppen van de wizard en voor het verwerken van andere Windows-berichten.

De dialoogvenstersjablonen maken

Er zijn twee basistypen wizardpagina's: extern en intern. Buitenpagina's zijn de introductiepagina's (welkom) en voltooiingspagina's. Alle overige zijn binnenpagina's.

Templates voor het dialoogvenster voor buitenpagina's

De basisindeling van de introductie- en voltooiingspagina's is identiek. In de volgende afbeelding ziet u een voorbeeld van de introductiepagina van Wizard97, met een tijdelijk watermerk.

schermafbeelding die een wizardpagina toont met een afbeelding aan de linkerkant, de titel en de hoofdtekst aan de rechterkant, en de knoppen 'terug', 'volgende' en 'annuleren' onderaan

Voor buitenpagina's van de Wizard97 is de sjabloon voor het dialoogvenster 317x193 dialoogeenheden. De wizard vult de hele interface, behalve het bijschrift en de balk onderaan die de knoppen Terug, Volgendeen Annuleren bevat. De linkerkant van de sjabloon, die is gereserveerd voor een bitmap watermerk, mag geen besturingselementen bevatten. Het watermerk wordt opgegeven in de PROPSHEETHEADER- structuur van de wizard en wordt automatisch toegevoegd aan de pagina. U moet ruimte voor maken bij het ontwerpen van het resourcesjabloon.

Wanneer u de watermerk bitmap maakt, moet u er rekening mee houden dat het dialoogvenster kan toenemen als de gebruiker bijvoorbeeld een groot systeemlettertype kiest. Verschillende talen hebben ook vaak verschillende metrische lettertypegegevens. Wanneer de pagina groeit, wordt het gebied dat is gereserveerd voor het watermerk evenredig groter. U kunt de watermerk bitmap echter niet wijzigen, noch is de bitmap uitgerekt om het grotere gebied te vullen. In plaats daarvan blijft de bitmap behouden in de oorspronkelijke grootte in het linkerbovenhoekgedeelte van het gereserveerde gebied. Het gedeelte van het grotere gereserveerde gebied dat niet door het watermerk wordt bedekt, wordt automatisch gevuld met de kleur van de pixel linksboven van de bitmap.

Als u watermerk bitmaps van verschillende grootte wilt hebben voor verschillende metrische lettertypegegevens, zijn er twee mogelijke oplossingen:

  • Haal de metrische lettertypegegevens op voordat u de wizard maakt en geef een watermerk bitmap met de juiste grootte op.
  • Geef geen watermerk bitmap op wanneer u de wizard maakt. Wizard97 laat het watermerkgebied leeg. Teken vervolgens een bitmap met de juiste grootte op het gebied dat is gereserveerd voor het watermerk.

U kunt besturingselementen in het gebied rechts van het watermerk plaatsen, net zoals voor een normaal dialoogvenster. De achtergrondkleur van dit gebied wordt bepaald door het systeem en vereist geen actie van uw kant. Meestal plaatst u twee statische besturingselementen in dit gebied. De bovenste bevat de titel en gebruikt een groot vet lettertype (12 punten Verdana Vet voor Wizard97). De andere, die voor verklarende tekst is, maakt gebruik van het standaarddialoogvensterlettertype.

Het belangrijkste verschil tussen de introductie- en voltooiingspagina's is de wizardknoppen en de tekst in de statische besturingselementen. Introductiepagina's hebben normaal gesproken een Volgende en een knop Vorige, waarbij alleen de knop Volgende is ingeschakeld. Op voltooiingspagina's is de knop Vorige ingeschakeld en wordt de knop Volgende vervangen door een knop Voltooien.

Notitie

In Aero Wizards wordt de knop Vorige vervangen door een pijlknop in de bijschriftbalk.

 

U kunt de tekst op de knop Voltooien wijzigen door de wizard een PSM_SETFINISHTEXT bericht te verzenden. Standaard bevat de knop Voltooien geen toetsenbordversneller. Als u een toetsenbordversneller wilt definiëren, neemt u een ampersand op in de tekenreeks die u doorgeeft aan PSM_SETFINISHTEXT. Bijvoorbeeld: '&Finish' definieert 'F' als de toetsenbordversneller.

Dialoogvenstersjablonen voor binnenpagina

Binnenpagina's hebben een enigszins andere uitstraling dan buitenpagina's. In de volgende afbeelding ziet u een voorbeeld van een Wizard97-interieurpagina, met een tijdelijke aanduiding van de headerbitmap.

schermafbeelding van een wizardpagina met titel- en subtiteltekst en een afbeelding bovenaan, tekst in het midden en knoppen onderaan

Het koptekstgebied boven aan de pagina wordt verwerkt door het eigenschappenvenster, dus het is niet opgenomen in de sjabloon. De inhoud van de koptekst wordt opgegeven in de PROPSHEETPAGE- structuur van de pagina en de PROPSHEETHEADER- structuur van de wizard. Omdat de binnenpagina tussen de koptekst en de knoppen moet passen, is de wizard97-dialoogvenstersjabloon 317x143 dialoogvenstereenheden, iets kleiner dan de sjabloon voor buitenpagina's.

In de volgende afbeelding ziet u een Aero Wizard die is gemaakt op basis van dezelfde sjabloon.

schermafbeelding die verschilt van de vorige doordat er bovenaan een titelgebied is en onderaan alleen de knoppen Volgende en Annuleren staan

De wizardpagina's definiëren

Nadat u de dialoogvenstersjablonen en gerelateerde resources zoals bitmaps en tekenreekstabellen hebt gemaakt, kunt u de eigenschappenvensterpagina's maken. De procedure is vergelijkbaar met die voor standaard eigenschappenbladen. Vul eerst de juiste leden van een PROPSHEETPAGE structuur in. (Sommige leden zijn specifiek voor wizards.) Roep vervolgens de createPropertySheetPage- functie aan om de HPROPSHEETPAGE-ingang van de pagina te maken.

De volgende wizard-gerelateerde vlaggen kunnen worden ingesteld in het dwFlags element van de PROPSHEETPAGE structuur.

Vlag Beschrijving
PSP_HIDEHEADER Stel deze vlag in voor externe pagina's in Wizard97. De koptekst wordt niet weergegeven en er kan een watermerk worden weergegeven.
PSP_USEHEADERTITLE Stel deze vlag in voor binnenpagina's om een titel in het koptekstgebied in Wizard97 of boven aan het clientgebied in een Aero Wizard te plaatsen.
Gebruik_hoofdverwijzing_ondertitel Stel deze vlag in voor binnenpagina's om een ondertitel in het koptekstgebied in Wizard97 te plaatsen.

 

Als u PSP_USEHEADERTITLE of PSP_USEHEADERSUBTITLE hebt ingesteld, wijst u respectievelijk de titel- en subtiteltekst toe aan de pszHeaderTitle en pszHeaderSubtitle leden. Wanneer u tekenreeksen toewijst aan leden van de PROPSHEETPAGE- en PROPSHEETHEADER structuren, kunt u een tekenreeksaanwijzer toewijzen of de MAKEINTRESOURCE macro gebruiken om een waarde uit een tekenreeksresource toe te wijzen. De tekenreeksresource wordt geladen vanuit de module die is opgegeven in de hInstance lid van de PROPSHEETHEADER- structuur van de wizard.

Wanneer u CreatePropertySheetPage aanroept om een pagina te maken, wijst u het resultaat toe aan een element van een matrix met HPROPSHEETPAGE-ingangen. Deze matrix wordt gebruikt bij het maken van het eigenschappenvenster. De matrixindex van de greep van een pagina bepaalt de standaardvolgorde waarin deze wordt weergegeven. Nadat u de HPROPSHEETPAGE-ingang van een pagina hebt gemaakt, kunt u dezelfde PROPSHEETPAGE structuur opnieuw gebruiken om de volgende pagina te maken door nieuwe waarden toe te wijzen aan de relevante leden.

U kunt ook pagina's maken door afzonderlijke PROPSHEETPAGE structuren voor elke pagina te gebruiken en een matrix met structuren te maken. Deze matrix wordt gebruikt in plaats van een matrix met HPROPSHEETPAGE-ingangen bij het maken van het eigenschappenvenster. Als u afzonderlijke PROPSHEETPAGE structuren gebruikt, hoeft u geen CreatePropertySheetPage- aan te roepen, maar wordt meer geheugen gebruikt. Anders is er geen significant verschil tussen de twee benaderingen.

In het volgende voorbeeld wordt een Wizard97-pagina voor het interieur gedefinieerd door waarden toe te wijzen aan een PROPSHEETPAGE--structuur. In dit voorbeeld worden de titel, subtitel en dialoogvenstersjabloon van de pagina allemaal geïdentificeerd door de resource-id's. De functie CreatePropertySheetPage wordt vervolgens aangeroepen om de HPROPSHEETPAGE-handle van de pagina te maken. Omdat het de tweede pagina is die verschijnt, wordt de handle toegewezen aan de array van handles, ahpsp, met een index van 1.

// g_hInstance is the global HINSTANCE of the application.
// IntPage1DlgProc is the dialog procedure for this page.
// ahpsp is an array of HPROPSHEETPAGE handles.

PROPSHEETPAGE psp = { sizeof(psp) };

psp.hInstance         = g_hInstance;
psp.dwFlags           = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
psp.lParam            = (LPARAM) &wizdata;
psp.pszHeaderTitle    = MAKEINTRESOURCE(IDS_TITLE1);
psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_SUBTITLE1);
psp.pszTemplate       = MAKEINTRESOURCE(IDD_INTERIOR1);
psp.pfnDlgProc        = IntPage1DlgProc;

ahpsp[1] = CreatePropertySheetPage(&psp);

Aangepaste paginagegevens

Wanneer u een pagina maakt, kunt u er aangepaste gegevens aan toewijzen met behulp van de lParam lid van de PROPSHEETPAGE structuur, meestal door deze een aanwijzer toe te wijzen aan een door de gebruiker gedefinieerde structuur.

Wanneer de pagina voor het eerst is geselecteerd, ontvangt de dialoogvensterprocedure een WM_INITDIALOG bericht. De lParam waarde van het bericht verwijst naar een kopie van de PROPSHEETPAGE structuur van de pagina, waaruit u de aangepaste gegevens kunt ophalen. U kunt deze gegevens vervolgens opslaan voor gebruik in volgende berichten met behulp van SetWindowLongPtr- met GWL_USERDATA als de indexparameter. Meerdere pagina's kunnen een aanwijzer naar dezelfde gegevens hebben en elke wijziging in de gegevens die door de ene pagina zijn aangebracht, is beschikbaar voor de andere pagina's in hun dialoogvensterprocedures.

Het eigenschappenvenster van de wizard definiëren

Net als bij gewone eigenschappenbladen definieert u het eigenschappenvenster van de wizard door leden van een PROPSHEETHEADER structuur in te vullen. Met deze structuur kunt u de pagina's opgeven waaruit de wizard bestaat en de standaardvolgorde waarin ze worden weergegeven, samen met verschillende gerelateerde parameters. Vervolgens start u de wizard door de functie PropertySheetaan te roepen.

In de stijl Wizard97 wordt de pszCaption- lid van de PROPSHEETHEADER- structuur genegeerd. In plaats daarvan geeft de wizard het bijschrift weer dat is opgegeven in de dialoogvenstersjabloon van de huidige pagina. Als de sjabloon geen bijschrift bevat, wordt het bijschrift van de vorige pagina weergegeven. Als u dus hetzelfde bijschrift op alle pagina's wilt weergeven, geeft u het bijschrift op in de sjabloon voor de inleidende pagina.

In de Aero Wizard-stijl wordt het bijschrift van het dialoogvenster genomen van pszCaption.

Als u een matrix met HPROPSHEETPAGE-ingangen voor uw pagina's hebt gemaakt, wijst u de matrix toe aan het phpage lid. Als u in plaats daarvan een matrix van PROPSHEETPAGE structuren hebt gemaakt, wijst u de matrix toe aan het ppsp-lid lid en stelt u de vlag PSH_PROPSHEETPAGE in de dwFlags- lid in.

In het volgende voorbeeld worden waarden toegewezen aan psh-, een PROPSHEETHEADER-structuur en wordt de functie PropertySheet aangeroepen om de wizard te starten. De Wizard97-wizard heeft zowel watermerk- als koptekstafbeeldingen, die worden opgegeven door hun resource-ID's. De ahpsp matrix bevat alle HPROPSHEETPAGE-ingangen en definieert de standaardvolgorde waarin ze worden weergegeven.

// g_hInstance is the global HINSTANCE of the application.
// ahpsp is an array of HPROPSHEETPAGE handles.

PROPSHEETHEADER psh = { sizeof(psh) };

psh.hInstance      = g_hInstance;
psh.hwndParent     = NULL;
psh.phpage         = ahpsp;
psh.dwFlags        = PSH_WIZARD97 | PSH_WATERMARK | PSH_HEADER;
psh.pszbmWatermark = MAKEINTRESOURCE(IDB_WATERMARK);
psh.pszbmHeader    = MAKEINTRESOURCE(IDB_BANNER);
psh.nStartPage     = 0;
psh.nPages         = 4;

PropertySheet(&psh);

De procedure van het dialoogvenster

Elke pagina van de wizard heeft een dialoogvensterprocedure nodig voor het verwerken van Windows-berichten, met name meldingen van de besturingselementen en de wizard. De drie berichten die bijna alle wizards moeten kunnen verwerken, zijn WM_INITDIALOG, WM_DESTROYen WM_NOTIFY.

Het WM_NOTIFY bericht wordt ontvangen voordat de pagina wordt weergegeven en wanneer op een van de knoppen van de wizard wordt geklikt. De parameter lParam van het bericht is een aanwijzer naar een NMHDR headerstructuur. De ID van de melding bevindt zich in het code-onderdeel van de structuur, lid. De vier meldingen die de meeste wizards moeten verwerken, zijn de volgende.

Code Beschrijving
PSN_SETACTIVE Verzonden voordat de pagina wordt weergegeven.
PSN_WIZBACK Verzonden wanneer op de knop Terug wordt geklikt.
PSN_WIZNEXT Verzonden wanneer op de knop Volgende wordt geklikt.
PSN_WIZFINISH Verzonden wanneer op de knop Voltooien wordt geklikt.

 

WM_INITDIALOG en WM_DESTROY verwerken

Wanneer een pagina voor het eerst wordt weergegeven, ontvangt de dialoogvensterprocedure een WM_INITDIALOG bericht. Door dit bericht te verwerken, kan de wizard alle benodigde initialisatietaken uitvoeren, zoals het opslaan van aangepaste gegevens of het instellen van lettertypen.

Wanneer het eigenschappenvenster wordt vernietigd, ontvangt u een WM_DESTROY bericht. De wizard wordt automatisch vernietigd door het systeem, maar als u dit bericht verwerkt, kunt u alle benodigde opschoning uitvoeren.

PSN_SETACTIVE verwerken

De PSN_SETACTIVE meldingscode wordt telkens verzonden wanneer een pagina zichtbaar wordt gemaakt. De eerste keer dat een pagina wordt bezocht, volgt PSN_SETACTIVE het WM_INITDIALOG bericht. Als de pagina vervolgens opnieuw wordt bekeken, ontvangt deze slechts een PSN_SETACTIVE melding. Deze melding wordt meestal verwerkt om gegevens voor de pagina te initialiseren en de juiste knoppen in te schakelen.

Standaard worden in de wizard de knoppen Vorige, Volgendeen Annuleren weergegeven, waarbij alle knoppen zijn ingeschakeld. Als u een knop wilt uitschakelen of voltooien wilt weergeven in plaats van Volgende, moet u een PSM_SETWIZBUTTONS bericht verzenden. Nadat dit bericht is verzonden, blijft de status van de knoppen behouden totdat het wordt gewijzigd door een ander PSM_SETWIZBUTTONS bericht, zelfs als er een nieuwe pagina is geselecteerd. Normaal gesproken verzenden alle PSN_SETACTIVE handlers dit bericht om ervoor te zorgen dat elke pagina de juiste knopstatus heeft.

U kunt de knopstatus op elk gewenst moment wijzigen met dit bericht. U wilt bijvoorbeeld dat de knop Volgende in eerste instantie wordt uitgeschakeld. Nadat een gebruiker alle benodigde gegevens heeft ingevoerd, kunt u een ander PSM_SETWIZBUTTONS bericht verzenden om de knop Volgende in te schakelen en de gebruiker door te laten gaan naar de volgende pagina.

In het volgende codefragment wordt de macro PropSheet_SetWizButtons gebruikt om de knoppen Vorige en Volgende op een binnenpagina in te schakelen voordat deze wordt weergegeven.

case WM_NOTIFY :
    {
        LPNMHDR pnmh = (LPNMHDR)lParam;
        
        switch(pnmh->code)
        {
        
        ...
        
        case PSN_SETACTIVE :
        
            ...
            
            // This is an interior page.
            PropSheet_SetWizButtons(hwnd, PSWIZB_NEXT | PSWIZB_BACK);
            
            ...
        }
    ...
    
    }

PSN_WIZNEXT, PSNWIZBACK en PSN_WIZFINISH verwerken

Wanneer op de knop Volgende of Vorige wordt geklikt, ontvangt u een meldingscode voor PSN_WIZNEXT of PSN_WIZBACK. De wizard gaat standaard automatisch naar de volgende of vorige pagina in de volgorde die wordt gedefinieerd wanneer het eigenschappenvenster wordt gemaakt. Een veelvoorkomende reden voor het afhandelen van deze meldingen is om te voorkomen dat de gebruiker van pagina wisselt of de standaardpaginavolgorde overschrijft.

Als u wilt voorkomen dat de gebruiker van pagina wisselt, verwerkt u de knopmelding, roept u de functie SetWindowLong aan met de DWL_MSGRESULT waarde ingesteld op –1 en retourneert u TRUE. Bijvoorbeeld:

case PSN_WIZNEXT :

        ...
        
        // Do not go to the next page yet.
        SetWindowLong(hwnd, DWL_MSGRESULT, -1);
        
        return TRUE;
        
        ...

Als u de standaardvolgorde wilt overschrijven en naar een bepaalde pagina wilt gaan, roept u SetWindowLong- aan met de DWL_MSGRESULT waarde ingesteld op de resource-id van het dialoogvenster van de pagina en retourneert u TRUE. Bijvoorbeeld:

case PSN_WIZNEXT :

        ...
        
        // Go straight to the completion page.
        SetWindowLong(hwnd, DWL_MSGRESULT, IDD_FINISH);
        
        return TRUE;
        
        ...

Wanneer op de knop Voltooien of Annuleren wordt geklikt, ontvangt u respectievelijk een PSN_WIZFINISH of PSN_RESET meldingscode. Wanneer op een van deze knoppen wordt geklikt, wordt de wizard automatisch vernietigd door het systeem. U kunt deze meldingen echter afhandelen als u opschoontaken moet uitvoeren voordat de wizard wordt vernietigd. Als u wilt voorkomen dat de wizard wordt vernietigd wanneer u een melding van PSN_WIZFINISH ontvangt, roept u SetWindowLong- aan met de DWL_MSGRESULT waarde ingesteld op TRUE-en retourneert u TRUE. Bijvoorbeeld:

case PSN_WIZFINISH :

        ...
        
        // Not finished yet.
        SetWindowLong(hwnd, DWL_MSGRESULT, TRUE);
        
        return TRUE;
        
        ...

Wizards die compatibel zijn met eerdere versies

In de voorgaande sectie wordt ervan uitgegaan dat u een wizard implementeert voor een systeem met versie 5 of hoger van de algemene besturingselementen.

Als u een wizard schrijft voor systemen met eerdere versies van de algemene besturingselementen, zijn veel van de functies die in de vorige sectie worden besproken, niet beschikbaar. Een aantal leden van de PROPSHEETHEADER en PROPSHEETPAGE structuren die worden gebruikt door de wizard97-stijl worden alleen ondersteund door algemene besturingselementen versie 5 en hoger. Het is echter nog steeds mogelijk om een achterwaarts compatibele wizard te implementeren met een uiterlijk dat vergelijkbaar is met die van de stijl Wizard97. Hiervoor moet u het volgende expliciet implementeren:

  • Voeg de watermerkafbeelding toe aan de dialoogvenstersjabloon voor de introductie- en voltooiingspagina's.
  • Maak al uw sjablonen dezelfde grootte. Er is geen afzonderlijk systeemgedefinieerde koptekstgebied voor binnenpagina's.
  • Maak het koptekstgebied van de binnenpagina expliciet op uw sjablonen.
  • Gebruik geen koptekstafbeelding omdat deze mogelijk conflicteren met de titel of subtitel als de wizard de grootte wijzigt.

Zie voor meer informatie over achterwaarts compatibele wizards Wizard 97.

Opmerkingen

Zie de Wizard97 Specificatie, elders in de Windows SDK voor een volledige bespreking van ontwerpproblemen voor Wizard97. Dit document bevat richtlijnen voor bijvoorbeeld de dimensies voor de dialoogvensters, bitmapdimensies en kleuren en de plaatsing van besturingselementen.

Eigenschappenbladen gebruiken

demo van algemene besturingselementen van Windows (CppWindowsCommonControls)