Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Window & Thread Loops

[es] :: C/C++ programiranje :: Window & Thread Loops

[ Pregleda: 2309 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 1131
*.ptt.yu



+64 Profil

icon Window & Thread Loops29.09.2004. u 07:20 - pre 238 meseci
Ako sam napravio thread koji ima svoj message loop, da li poruke koje stižu za prozore koji su napravljeni u okviru tog thread-a, prolaze kroz taj loop?

Još jedno pitanje: pri registraciji prozora (RegisterClass) prijavljuje se i handler za taj prozor (WndProc). Ako želim da prozor bude zapakovan u klasu, onda i handler treba da bude u njoj. Ali samo za static funkciju mogu da dobijem adresu, što mi ne znači previše...

Moja ideja je da u thread loop-u kupim poruke za prozore (uspeo sam da napravim non static funkciju članicu moje thred klase u koju sam smestio loop). Da li je to OK?
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Window & Thread Loops29.09.2004. u 07:50 - pre 238 meseci
Ops, ovo su neke nove grane matematike za koju ja ne znam :(

Mada mislim da ima malo vise veze sa programiranjem, neko objeknto orjentisano, pa jos za Win, pa se spominju klase :).

Ali lepo kada si zapoceo temu, da li postoje klase u matematici, kao i da li postoji nasledjivanje ?

CHUPCKO
 
Odgovor na temu

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 1131
*.ptt.yu



+64 Profil

icon Re: Window & Thread Loops29.09.2004. u 19:31 - pre 238 meseci
Hm, zamor materijala :)

Aj nek' neki moderator (alooo, moderatoreeee) prebači ovo u C++

Izvinjavam se nedužnim posetiocima mat. foruma na ovim prostaklucima :)
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
*.nat-pool.bgd.sbb.co.yu



Profil

icon Re: Window & Thread Loops30.09.2004. u 10:35 - pre 237 meseci
Ako u pozivima GetMessage i PeekMessage umesto hwnd-a prosledis NULL funkcije ce sakupljati poruke od svih prozora koji su kreirani u tom threadu.

Sto se static WinProc metode tice, MS je i na to mislio... Za svaki prozor mozes da zakacis proizvoljan podatak a u tvom slicaju this pointer. Kasnije u WinProc-u procitas taj podataj, castujes ga u pointer na tvoju klasu i radi sta ti je zelja.

Code:

posle kreiranja prozora:

SetWindowLongPtr(hWnd, GWLP_USERDATA, this); // umesto this-a moze i pointer na primerak klase

a u WinProc:
CMyClass* c = (CMyClass*) GetWindowLongPtr(hWnd,  GWLP_USERDATA);



btw... SVE PISE U MSDN-u. Samo treba citati...

yooyo
 
Odgovor na temu

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 1131
*.ptt.yu.



+64 Profil

icon Re: Window & Thread Loops13.10.2004. u 07:54 - pre 237 meseci
Hvala na odgovoru, tako sam i rešio.
Mada sam usput saznao dosta o porukama. Npr. da mnogo poruka zaobilazi thread loop, naročito pri inicijalizaciji prozora, ali i kasnije, iz nepoznatog meni razloga. To znači da treba biti posebno obazriv šta ti stiže u WndProc.
Ako uradiš ::GetWindowLongPtr i "slepo" kastuješ možeš dobiti bogtepitašta. A opet, ne možeš u static-u da pitaš ništa specifično za prozor. Ipak sam i to rešio, ali ima previše stvari koje nisu type safe.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Window & Thread Loops

[ Pregleda: 2309 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.