Når du bruker en dialogboks

De fleste programmer bruke dialogbokser til å be om tilleggsinformasjon for kommandoer som krever inndata fra brukeren. Ved hjelp av en dialogboks er den eneste anbefalt metode for et program å hente inndata. Kommandoen Åpne filen krever for eksempel navnet på en fil for å åpne, slik at et program skal bruke en dialogboks for å spørre brukeren etter navnet. I slike tilfeller oppretter programmet dialogboksen når brukeren velger kommandoen og ødelegger dialogboksen umiddelbart etter at brukeren angir informasjon.

Mange programmer også bruke dialogbokser til å vise informasjon eller alternativer mens brukeren arbeider i et annet vindu. For eksempel bruke tekstbehandlingsprogrammer ofte en dialogboks med en tekst-Søk-kommandoen. Mens programmet søker etter teksten, forblir dialogboksen på skjermen. Brukeren kan deretter tilbake til dialogboksen Søk etter samme ordet og igjen; eller brukeren kan endre oppføringen i dialogboksen Søk etter et nytt ord og. Programmer at bruke dialogbokser på denne måten vanligvis opprette en når brukeren velger en kommando og fortsette å vise det for så lenge programmet kjører, eller til brukeren eksplisitt lukker dialogboksen.

For å støtte de forskjellige måtene programmer bruke dialogbokser, Win32 API gir to typer dialogboksen: modal og ikke-modalt. En modal dialogboks som krever at brukeren angir informasjonen eller avbryte dialogboksen før du gir programmet å fortsette. Programmer bruker sperrende dialogbokser sammen med kommandoene som krever mer informasjon før de kan fortsette. En ikke-sperrende dialogboksen lar brukeren angir informasjonen og gå tilbake til den forrige oppgaven uten å lukke dialogboksen. Sperrende dialogbokser er enklere å administrere enn ikke-sperrende dialogboksen boksene fordi de er opprettet, utføre sin oppgave, og er ødelagt ved å kalle en enkelt funksjon.

For å opprette enten en modalt eller ikke-sperrende dialogboks, et program må angi en mal for dialogboksen-boksen til å beskrive dialogboksen Boksstiler og innhold; programmet må også oppgi en dialog boks prosedyre til å utføre oppgaver. Dialogboksen boksen mal er en binær beskrivelse av dialogboksen og kontroller som den inneholder. Utvikleren kan opprette denne malen som en ressurs kan lastes inn fra programmets kjørbare fil, eller de opprettes i minnet, mens programmet kjører. Dialogboksen boksen prosedyre er en programdefinert tilbakekall funksjon som systemet ringer når det har inngang for dialogboksen eller aktiviteter for dialogboksen for å utføre. Selv om en dialog boks prosedyre ligner en vindusprosedyre, har det ikke samme ansvar.

Et program oppretter vanligvis en dialogboks ved hjelp av DialogBox - eller CreateDialog -funksjonen. DialogBox oppretter en sperrende dialogboks; CreateDialog oppretter en ikke-sperrende dialogboks. Disse to funksjonene laste en boksen fra programmets kjørbare fil, og opprette et popup-vindu som samsvarer med spesifikasjonene for malen. Det er andre funksjoner som oppretter en dialogboks ved hjelp av maler i minnet; de sender tilleggsinformasjon i dialogboksen boksen prosedyren som er opprettet i dialogboksen.

Dialogboksene tilhører vanligvis en forhåndsdefinert, eksklusive vindusklasse. Systemet bruker denne vindusklasse og dens tilsvarende vindusprosedyre for begge modal og ikke-sperrende dialogbokser. Når funksjonen kalles, det oppretter vinduet for dialogboksen, i tillegg til windows for kontrollene i dialogboksen, og deretter sender valgte meldinger i dialogboksen boksen prosedyren. Mens dialogboksen er synlig, administrerer forhåndsdefinerte vindusprosedyre alle meldinger, behandler noen meldinger og sende andre i dialogboksen boksen prosedyren slik at prosedyren kan utføre oppgaver. Programmer har ikke direkte tilgang til forhåndsdefinerte vindusklasse eller vindusprosedyre, men de kan bruke dialogboksen boksen mal og dialogboksen boksen prosedyre til å endre stil og virkemåten til en dialogboks.

Index