.[ ČeskéHry.cz ].
WndProc :: ColorDialog
Jdi na stránku Předchozí  1, 2
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> .NET
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 12. prosinec 2011, 22:17:21    Předmět: Odpovědět s citátem

Tato úloha má několik možných řešení a ta už tu vlastně byla nabídnuta, takže já jen podotknu, že souhlasím s rezna, Yossarian, Mnemonic. Člověk totiž musí v prvé řádě chápat a rozumět, jak ten operační systém funguje. Pak na tom může kreslit v libovolném prostředí a bude to fungovat.

* Zpráva WM_PAINT je poslána operačním systémem jen do okna, které je pode něj třeba překreslit. Proto se to překresluje, jen když se přes to přejíždí jiným oknem.
* OnPaint je pak voláno .NETem při obdržení té zprávy WM_PAINT, takže OnPaint stačí na překreslení okna a není třeba se připojovat přímo do WndProc.
* Jedna aplikace má společnou frontu zpráv pro všechna svoje okna. Proto při předání všech zpráv WM_PAINT do své rutiny se najednou ztratí obraz ze všech ostatních oken aplikace.
* Okno, kterého se týká konkrétní WM_PAINT zpráva, je uvedeno jako první argument té zprávy. Což je ale jedno, když použijeme OnPaint - protože tehdy to za nás roztřídí .NET a nemůžeme nic pokazit.
* Překreslení okna si vyžádáme zneplatněním obsahu okna pomocí volání funkce Invalidate(). Operační systém pak pošle zprávu WM_PAINT tak brzo, jak rychle to bude stíhat, aniž by mu to narušilo zpracování dalších zpráv. Na rozdíl od použití timeru si použitím Invalidate nepohřbíme celou aplikaci na pomalém počítači nebo dokonce celý systém na starším Windows.

Nejsem na to expert, klidně mě opravte nebo doplňte.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 12. prosinec 2011, 23:30:38    Předmět: Odpovědět s citátem

Děkuji za odpovědi, určitě se to bude hodit až budu projekt rozšiřovat na bakalářku...
Ale teď můžu být rád, že jsem to stihl dodělat víceméně včas...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> .NET Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna