Behandler WM_COMMAND meldingen i en enkel dialogboks

Når det skjer en hendelse i en dialogboks, sender en WM_COMMAND -melding i dialogboksen boksen prosedyren i kontrollen. Signifikante ordet for parameteren wParam er en meldingskode, som angir hendelsestypen som oppstod. Signifikante ordet av wParam er en konstant som identifiserer kontrollen. LParam -parameteren er vindusreferansen for kontrollen.

Ved behandling av WM_COMMAND-meldingen, undersøker eksemplet stavekontrollen kontroll identifikatoren i signifikante ordet av wParam å fastslå opprinnelsen til meldingen. Konstantene IDCOMBO, IDOK, IDIGNORE og IDCANCEL identifiserer kombinasjonsboksen, knappen endre , Ignorer -knappen og Avbryt -knappekontroller henholdsvis.

En kombinasjonsboks kan sende en WM_COMMAND melding for en rekke forskjellige årsaker. Hvis du vil finne ut hvilken type hendelse, undersøker dialogboksen boksen prosedyre Meldingskoden i signifikante ordet av wParam. Eksemplet behandler bare CBN_DBLCLK varselmeldingen, som sendes når brukeren dobbeltklikker et listeelement. Dialogboksen boksen prosedyre behandler denne varslingsmelding på samme måte som et klikk på endre -knappen.

Knapper i dette eksemplet sende WM_COMMAND meldinger bare når de er valgt av brukeren. Når brukeren velger knappen endre , erstatter gjeldende markering i programmets edit-kontrollen i dialogboksen boksen prosedyre med innholdet i feltet utvalg i kombinasjonsboksen. Valgfeltet kan inneholde enten merket listeelement eller tekst som brukeren har skrevet inn. Dialogboksen boksen prosedyre deretter velger det neste feilstavede ordet på samme måte som den behandler en Ignorer knappeklikk.

Når brukeren klikker Ignorer , dialogboksen boksen prosedyre kaller den programdefinert SelectNextWord og InitSpellList funksjoner å velge det neste feilstavede ordet i programmets Rediger kontroll. InitSpellList plasserer det feilstavede ordet i valgfeltet av kombinasjonsboksen, og legger til forslag til stavemåte i kombinasjonsbokslisten.

Når brukeren klikker Avbryt -knappen, kaller dialogboksen boksen prosedyre funksjonen EndDialog for å lukke dialogboksen.

Index