Blikanie – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Blikanie – C / C++ – Fórum – Programujte.comBlikanie – C / C++ – Fórum – Programujte.com

 

Grungy0
Super člen
29. 4. 2011   #1
-
0
-

Zdravím, mám taký malý problém. V aplikácii ktorú vytváram s pomocou winapi mám plochu do ktorej vykresľujem určité geometrické objekty. Keďže to musím veľakrát za sebou prekresľovať vytvorím si pri prijatí správy na prekreslenie pomocné HDC tam to všetko nakreslím a potom to pomocou BitBlt prekopčím na hlavné HDC, myslím že sa toto volá doublebuffering. Toto funguje v pohode, nič nebliká, ide to ako má, problém je však s buttonmi a inými ovládacími prvkami na ploche, ktoré pri stálom prekresľovaní blikajú. Neviete ako by sa toto dalo ošetriť?
Skúšal som vykresľovacie buttony ktoré posielajú správu na ich prekreslenie, dokonca aj tam som skúsil aplikovať double buffering ale stále to bliká.

Nahlásit jako SPAM
IP: 158.193.84.–
Prvý náznak hlúposti, je pocit geniality.
JoDiK
~ Anonymní uživatel
987 příspěvků
29. 4. 2011   #2
-
0
-

To Grungy :
Nevidím ti na obrazovku co tam máš a jak, ale nebude spíš problém v tom algoritmu?

Keďže to musím veľakrát za sebou prekresľovať


Proč to musíš překreslovat? Na základě jaké události se vyvolá to překreslení? Co všechno necháváš překreslovat?

Ty buttony snad nejsou v tom prvku, kam kreslíš, tak proč necháváš překreslovat všechno? Překresluj jen tu část, kam kreslíš...

Ale to vařím z vody, netuším co a jak tvoje aplikace dělá...

Nahlásit jako SPAM
IP: 88.103.236.–
Grungy0
Super člen
29. 4. 2011   #3
-
0
-

Algoritmus je dobrý, prekreslenie sa volá zakaždým keď príde správa timeru, pretože tie objekty čo vykresľujem sú dosť v pohybe. A aj keby nebol, tak v tejto fáze vývoja to nemá cenu meniť.

Tie butony sú v podstate vo vrstve nad tým, ale tak ma napadlo teraz, že by sa namiesto invalidateRect dalo volať invalidateRgn v ktorom mu osekám tie časti kde sú ovládacie tlačítka.

Nahlásit jako SPAM
IP: 188.123.100.–
Prvý náznak hlúposti, je pocit geniality.
m->29+6
Super člen
30. 4. 2011   #4
-
0
-

Asi rok dozadu som robil hru v ASM a mal som podobný problém. Pomohlo mi jednoduché reagovanie na správu WM_ERASEBKGND tak, že som vrátil z funkcie LRESULT CALLBACK WndProc jednotku. Skús ;-)

Nahlásit jako SPAM
IP: 83.240.51.–
liborb
~ Redaktor
+18
Guru
2. 5. 2011   #5
-
0
-

Pokud máš ovládací prvky v oblasti, kam vykresluješ, tak jediné, co ti pomůže je vytvoření vlastní reakce na WM_ERASEBKGND - podle toho, jak to máš udělané buď úplně bez nebo budeš vymazávat jen části.

Nahlásit jako SPAM
IP: 78.80.52.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Podobná vlákna

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý