WM_INITDIALOG meldingen

Systemet støtter ikke sende en WM_CREATE melding i dialogboksen boksen prosedyren. I stedet, sendes det en WM_INITDIALOG -melding når det oppretter dialogboksen og alle kontroller, men før det viser dialogboksen. Prosedyren skal utføre noen initialisering behov for å sikre at dialogboksen viser gjeldende innstillinger tilknyttet kommandoen eller aktivitet. For eksempel når en dialogboks inneholder en kontroll for å vise gjeldende stasjon og mappe, må prosedyren fastslå gjeldende stasjon og mappe og angi kontrollen til denne verdien.

Prosedyren kan initialisere kontroller ved hjelp av funksjoner som SetDlgItemText og CheckDlgButton. Fordi kontrollene er windows, kan prosedyren også manipulere dem ved hjelp av vinduet-management funksjoner som EnableWindow og SetFocus. Prosedyren kan hente vindusreferansen for en kontroll ved hjelp av GetDlgItem -funksjonen.

Dialogboksen boksen prosedyre kan endre innhold, staten og plasseringen av en kontroll etter behov. For eksempel i en dialogboks som inneholder en liste over filnavn og en Åpne-knappen, kan prosedyren deaktivere knappen åpne til brukeren velger en fil fra listen. I dette eksemplet malen i boksen i dialogboksen angir WS_DISABLED stil for Åpne-knappen, og systemet deaktiverer automatisk knappen når du oppretter den. Når dialogboksen boksen prosedyre mottar en varslingsmelding fra listeboksen, som angir at brukeren har valgt en fil, prosedyren kaller funksjonen EnableWindow å aktivere Åpne-knappen.

Hvis du vil vise et egendefinert ikon i tekstlinjen i dialogboksen, kan WM_INITDIALOG-protokollbehandleren sende meldingen WM_SETICON til dialogboksen.

Hvis programmet oppretter dialogboksen ved hjelp av funksjonene DialogBoxParam, DialogBoxIndirectParam, CreateDialogParameller CreateDialogIndirectParam, inneholder lParam -parameteren for WM_INITDIALOG-melding ekstra parameteren sendes til funksjonen. Programmer bruker vanligvis denne ekstra parameteren skjedde adressen til ekstra Initialiseringsinformasjon i dialogboksen boksen prosedyren, men dialogboksen boksen prosedyren må finne ut betydningen av parameteren. Hvis programmet bruker en annen funksjon til å opprette dialogboksen, setter systemet lParam -parameteren til NULL.

Før retur fra WM_INITDIALOG -meldingen, skal prosedyren bestemme om det bør sette fokus inndata til en gitt kontroll. Hvis dialogboksen boksen prosedyre returnerer SANN, setter systemet automatisk inndata fokus til kontrollen som har vindusreferanse i wParam -parameteren. Hvis kontrollen får fokus standard ikke er riktig, kan den sette fokus til den aktuelle kontrollen ved hjelp av SetFocus -funksjonen. Hvis prosedyren angir inndata fokus, må den returnere FALSE for å forhindre at systemet definerer standard fokus. Kontrollen mottar standard input fokus er alltid den første kontrollen som er gitt i malen som er synlig, ikke er deaktivert, og har stilen WS_TABSTOP. Hvis det finnes ingen slik kontroll, angir systemet standard inndata fokus til den første kontrollen i malen.

Index