Dialogbokselementer I

Malen angir posisjon, bredde, høyde, stil, identifikator og vindusklasse for hver kontroll i dialogboksen. Programmet oppretter hver kontroll ved å sende denne data til funksjonen CreateWindowEx . Kontroller opprettes i rekkefølgen de er gitt i malen. Malen bør angi riktig nummer, typen og rekkefølge av kontroller for å sikre at brukeren kan angi inndataene som kreves for å fullføre kommandoen som er tilknyttet dialogboksen.

For hver kontroll angir malen stil verdier som definerer utseendet og drift av kontrollen. Hver kontroll er et underordnet vindu, og derfor må ha WS_CHILD-stil. Hvis du vil sikre at kontrollen er synlig når dialogboksen vises, må hver kontroll også ha WS_VISIBLE-stil. Andre brukte vindusstiler er WS_BORDER for kontroller som har valgfri kantlinjer, WS_DISABLED for kontroller som skal være deaktivert når dialogboksen opprettes for første gang, og WS_TABSTOP og WS_GROUP for kontroller som kan åpnes ved hjelp av tastaturet. WS_TABSTOP og WS_GROUP-stiler brukes sammen med dialogboksen tastatur grensesnitt som er beskrevet senere i dette emnet.

Malen kan også angi kontroll-stiler som er spesifikke for kontrollens vindusklasse. For eksempel må en mal som angir en knappekontroll gi en knappestilen for kontroll, for eksempel BS_PUSHBUTTON eller BS_CHECKBOX. Systemet sender kontroll stilene til kontroll-vindusprosedyre gjennom WM_CREATE -meldingen, slik at prosedyren for å tilpasse utseendet og drift av kontrollen.

Systemet konverterer koordinatene for plasseringen og målene for bredde og høyde fra dialogboksen grunnenheter til bildepunkter, før de sendes disse til CreateWindowEx. Når programmet oppretter en kontroll, angir den dialogboksen som det overordnede vinduet. Dette betyr at systemet alltid tolker posisjon koordinatene for kontrollen som klienten koordinater, forhold til øverste venstre hjørne av dialogboksens klientområdet.

Malen angir vindusklasse for hver kontroll. En typisk dialogboksen inneholder kontroller som hører til vindusklasser forhåndsdefinerte kontroll, for eksempel-knappen og redigere vindusklasser for kontrollen. I dette tilfellet angir malen vindusklasser ved å angi tilsvarende forhåndsdefinerte atom verdiene for klasser. Når en dialogboks inneholder en kontroll som hører til en egendefinert kontroll vindusklasse, gir malen navnet på den registrerte Vindusklassen eller atom verdien som er tilknyttet navnet.

Hver kontroll i en dialogboks, må ha en unik identifikator for å skille den fra andre kontroller. Kontroller sende informasjon i dialogboksen boksen prosedyren gjennom WM_COMMAND -meldinger, slik at kontroll-identifikatorer er viktige fremgangsmåten å fastslå hvilken kontroll sendt en gitt melding. Det eneste unntaket fra denne regelen er kontroll identifikatorer for statiske kontroller. Statiske kontroller krever ikke unike identifikatorer fordi de sender ingen WM_COMMAND-meldinger.

Du vil gi brukeren å lukke dialogboksen, bør malen angi minst én knapp og gi den til identifikatoren for kontrollen IDCANCEL. Hvis du vil gi brukeren å velge mellom å fullføre eller avbryte kommandoen som er tilknyttet dialogboksen, malen bør angi to trykknapper, merket OK og Avbryt, med kontroll-IDer for IDOK og IDCANCEL, henholdsvis.

En mal angir også valgfrie teksten og oppretting av data for en kontroll. Teksten vanligvis gir etiketter for knappekontroller eller angir første innholdet av en statisk tekst-kontroll. Oppretting av dataene er én eller flere byte med data som systemet sender til vindusprosedyre kontroll når du oppretter kontrollen. Oppretting av data er nyttige for kontroller som krever mer informasjon om deres første innhold eller stil enn er gitt av andre data. For eksempel kan et program bruke etableringen data til å angi den opprinnelige innstillingen og området for en kontroll over rullingen bar.