[ NeznamTkoSam @ 27.01.2005. 20:21 ] @
| Ne shvacam bas kako rade eventi.
Na primjer, u Button kontroli, provjerava se je li Button kliknut, i ako jest, onda se izvrsava event. Nije mi jasno kako provjerava da li je kliknut. U threadu? Nesto kao while petlja? |
[ jablan @ 27.01.2005. 21:36 ] @
[ dusans @ 27.01.2005. 21:46 ] @
Nešto nalik tome. Naime svaki "prozor" u Windows okruzenju ima WndProc proceduru u kojoj dobija message od operativnog sistema, to je jedna petlja koja ponavlja jednu istu stvar - čeka message od operativnog sistema i kad je dobije procesira je. Pod "prozorom" se podrazumevaju kako forme, tako i ostale komponente, dugmadi, text boksevi, itd...
Konkretno, kada dugme u svojoj WndProc proceduri dobije WM_CLICK message, poziva se npr. OnClick procedura koja zatim ispaljuje Click event.
Ista stvar je i sa ostalim eventima koji su rezultat interakcije korisnika i aplikacije, znači operativni sistem "detektuje" događaj, upućuje određene poruke kontroli nad kojom se desio događaj, kontrola reaguje na poruke i ispaljuje evente koje mi sad vidimo kao "managed".
Da ovo ne zbuni nekoga, da bi se ispalio neki event, to ne mora uopšte da uključuje u celu priču windows poruke ili WndProc, ovo je samo bilo kratko tehničko objašnjenje kako određeni događaji putuju od sistema do managed eventa.
[ Sundance @ 27.01.2005. 22:26 ] @
Ako te zanimaju koje sve WM_* poruke AppDomain dobiva i koje oni događaje izazivaju, pogledaj malo
IMessageFilter sučelje, tj. PreFilterMessage metodu koja kao argument prima izvornu win32 poruku.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.