ZUHÜLF! windows-redraw-stress
-
Hallo!
Ich habe in einem kleinen windowsprogramm in der WinMain mit der API routine ,,SetPixel '' in meinem ,,DC'' rumgemalt. Ich möchte jetzt, das die grafik beim resize oder so nicht verloren geht, dazu muss das fenster neu gemalt werden. ich möchte jetzt aber nicht in dem messagehandler WM_REDRAW die ganze grafik neu berechnen! wie kann ich das machen?
hier die malerei in der winmain
hDC = GetDC(hwnd);
// rechnerechne
SetPixel2(hDC,x,y,farbe); // usw
ReleaseDC(hwnd, hDC);danke für hilfe
-
Du malst in ein in einen Memory-DC selektiertes Bitmap und blittest es wenn du es brauchst.
Greetz, Swordfish
-
ich verstehe nicht!
-
Mit
SetPixel2(hDC,x,y,farbe);
"malst" du ja deinen Pixel an die Stelle x,y auf das Front-hDC, sprich das was du direkt auf dem Bildschirmausgibst....
stattdessen kannst du dir ein zweites hDC, zb. hDC2 erstellen und zeichnest dann darauf herum und anschließend gibst du alles aus...
Wenn dann WM_REDRAW auftritt kannst du das hDC2 einfach ausgeben und somit geht nichts verloren....MfG Kuldren
-
sorry, bin neu in windows-
wie gebe ich das ,,hdc2'' aus?
-
sorry, bin neu in windows-
->?
@topic
Indem du mit BitBlt das hDC2 in das hDC bltestDie MSDN kennst du aber oder?
MSDN->BitBlt:
BitBlt(hDC, 0, 0, width, height, hDC2, 0, 0, SRCCOPY);
-
primatenreflexe schrieb:
sorry, bin neu in windows
Was trotzdem keine Ausrede für Dumm- oder Faulheit ist. f'`8k
AutocogitoGruß, TGGC (\-/ returns)