Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 12. prosinec 2011, 22:17:21 Předmět: |
|
|
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 |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 12. prosinec 2011, 23:30:38 Předmět: |
|
|
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 |
|
|
|
|
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