At kende Windows - Del 8 bind - Windows brugergrænseflade Introduktion Dette er en del 8 af min serie, At kende Windows. Jeg antager at du har læst alle de foregående tutorials før denne. Du bør læse tutorials i den angivne rækkefølge. I denne del af serien ser vi på grundlæggende kodning af vinduet klasse procedure. Bemærk: Hvis du ikke kan se koden, eller hvis du tror noget mangler (brudt link, billede fraværende), bare kontakte mig på [email protected]. Det vil sige, kontakt mig for det mindste problem, du har om, hvad du læser.
Strukturen i Window klasse Procedure Vinduet klasse procedure tager fire parametre og returnerer en enkelt værdi. Sættet af fire parametre er budskabet fra systemet køen. Vi har talt om dette før. Kroppen af procedure anvender en switch konstruktion som den for C ++. Du kan have indlejret skifte konstruktioner. En typisk vindue Procedure Det følgende er en typisk vindue retsplejelov: LRESULT tilbagekald MainWndProc (HWND HWND, UINT uMsg, wParam wParam, lParam lParam) {switch (uMsg) {tilfælde WM_CREATE: //Initialiser vinduet. tilbage 0; tilfælde WM_PAINT: //Paint vinduets klient område.
tilbage 0; tilfælde WM_CLOSE: //Finalize. tilbage 0; tilfælde WM_DESTROY: //Ryd op vindue-specifikke dataobjekter. tilbage 0; ////Proces andre meddelelser. //Standard: returnere DefWindowProc (HWND, uMsg, wParam, lParam); } Returnere 0; } Hver CASE blok har et eller flere udsagn. Alt andet lige, skal den sidste sætning være "tilbage 0". I de tilfælde over beskeden er modtaget af uMsg parameter. De dele af budskabet i wParam og lParam parametre er ikke vigtigt for os nu (antage, at). Den WM_CREATE sendes til proceduren lige efter dit vindue er oprettet.
Til dette CASE i proceduren, kan du gøre nogle initialiseringsmeddelelse af vinduet, så som at skrive nogle indledende tekst på vinduet. Vi skal se detaljer senere. Læs ovenstående procedure kode, hvis du ikke allerede har gjort det. Fra den tidligere del af serien, så husk, at når du opretter det vindue, du kalder UpdateWindow funktionen til maling vinduets klient område. Denne funktion sender WM_PAINT meddelelse til systemet køen. Budskabet hurtigt ankommer i proceduren (sendt af while-løkke). De udsagn du skriver til CASE WM_PAINT i proceduren bør male vinduet. Vi skal se detaljer senere.
Jeg håber, du nu værdistigningen Windows brugergrænseflade kodning. Når du klikker på knappen Luk af et vindue, bliver WM_CLOSE beskeden sendt til køen ved vinduet. Fra køen er det hurtigt sendt til