Zitat:
Bei Invalidate wird Windows mitgeteilt, dass das Fenster neu gezeichnet werden soll. In dem Fall das Image.
Es hat niemand über Invalidate gesprochen.
Sondern darüber welche Funktion er verwenden soll.
Die erste oder die zweite Methode.
Methode A:
Delphi-Quellcode:
Function CaptureScreen(var hbmp: HBITMAP): Boolean;
var
hDCScreen, hDCMem : HDC;
cx, cy: Integer;
hBmpOld: HBITMAP;
dwRop: DWORD;
begin
hDCScreen := CreateDC('DISPLAY', 0, 0, 0);
cx := GetDeviceCaps(hDCScreen, HORZRES);
cy := GetDeviceCaps(hDCScreen, VERTRES);
hDCMem := CreateCompatibleDC(hDCScreen);
hbmp := CreateCompatibleBitmap(hDCScreen, cx, cy);
hBmpOld := SelectObject(hDCMem, hbmp);
dwRop := SRCCOPY or CAPTUREBLT;
Result := BitBlt(hDCMem, 0, 0, cx, cy, hDCScreen, 0, 0, dwRop);
SelectObject(hDCMem, hBmpOld);
DeleteDC(hDCMem);
DeleteDC(hDCScreen);
end;
Methode B:
1. GetDesktopWindow
2. GetDC\CreateDC
3. GetWindowRect
4. StretchBlt via BitBlt.
5. ReleaseDC
Was hat das jetzt mit Invalidate zu tun?
Das!
Zitat:
Oder warum benutzt einer nach knipsen ein image.invalidate und ein anderer image.refresh.. all solche Sachen da muss ich noch viel blättern damit ich die zusammenhänge Verstehe bzw was Überhaupt die Unterschiede sind, für mich ists irgendwie das selbe.
Ist wieder eine andere Frage worauf ich aber nicht geantwortet habe.
Du musst das schon auseinander halten.
gruss