Eier-trukket menyer og WM_DRAWITEM meldingen

Når varen må trekkes (for eksempel når den først vises, eller når brukeren velger den), sender systemet WM_DRAWITEM meldingen i vinduet prosedyren på menyen eier-vinduet. Denne meldingen inneholder en peker til en DRAWITEMSTRUCT struktur, som inneholder informasjon om elementet, inkludert elementdata som et program har kanskje tilordnet til den. I tillegg inneholder DRAWITEMSTRUCT flagg som angir status for varen (for eksempel om det er grå eller sjekket) samt et markeringsrammen rektangel og en enhetskontekst som programmet bruker til å tegne elementet.

Et program må gjøre følgende under behandling av WM_DRAWITEM-melding:

  1. Bestemme hvilken type tegning som er nødvendig. For å gjøre så, sjekk itemAction medlem av DRAWITEMSTRUCT -struktur.
  2. Tegn menyelementet på riktig måte, ved hjelp av markeringsrammen rektangel og enheten sammenheng Hentet fra strukturen DRAWITEMSTRUCT . Programmet må trekke bare innenfor rammene. Av ytelseshensyn utklipp systemet ikke deler av bildet som tegnes utenfor rektanglet.
  3. Gjenopprette alle GDI-objekter som er valgt for menyelementene enhetskontekst.

Hvis brukeren velger menyelementet, setter itemAction medlem av DRAWITEMSTRUCT -strukturen til verdien ODA_SELECT i systemet, og angir ODS_SELECTED-verdien i itemState -medlem. Dette er et programs cue å tegne menyelementet for å angi at det er valgt.

Index