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

Window & Thread Loops

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

[ Pregleda: 697 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darkosos
Darko Šoš
Beograd

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

Sajt: www.geocities.com/darkoso..


Profil

icon Window & Thread Loops29.09.2004. u 07:20

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?
29.09.2004. u 07:20 

chupcko
Beograd

Član broj: 5560
Poruke: 1067
*.mobtel.com

Sajt: www.google.com


Profil

icon Re: Window & Thread Loops29.09.2004. u 07:50
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
29.09.2004. u 07:50 

darkosos
Darko Šoš
Beograd

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

Sajt: www.geocities.com/darkoso..


Profil

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

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

Izvinjavam se nedužnim posetiocima mat. foruma na ovim prostaklucima :)
29.09.2004. u 19:31 

yooyo
Centroid / Technical director

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



Profil

icon Re: Window & Thread Loops30.09.2004. u 10:35
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
30.09.2004. u 10:35 

darkosos
Darko Šoš
Beograd

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

Sajt: www.geocities.com/darkoso..


Profil

icon Re: Window & Thread Loops13.10.2004. u 07:54
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.
13.10.2004. u 07:54 

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

[ Pregleda: 697 | Odgovora: 4 ]

Postavi temu Odgovori

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