Ich glaube, ich verstehe, was passiert, wenn ich „ein Objekt“ in ein „Gerät contect“ wählen, und wenn dieses Objekt eine Bürste ist, Schrift, Stift: Die charactersicts dieser Objekte werden daher weiter verwendet zum Zeichnen auf den Gerätekontext.Was macht SelectObject (dc, hBMP)?
Allerdings verstehe ich nicht, was passiert, nachdem ich eine Bitmap in den Gerätekontext auswählen, viel weniger, warum es notwendig ist, dies zu tun.
Ich habe ein Programm, das somehwere tut
HDC dc = ::GetDC(hWnd);
ffBitmap = ::CreateCompatibleBitmap(dc, windowWidth, windowHeight);
ffMemoryDc = ::CreateCompatibleDC(dc);
hOldBitmap = (HBITMAP) ::SelectObject(ffMemoryDc, ffBitmap);
und später zieht bis zum ffMemoryDc und dann * BitBlt * s die ffMemoyDc in den realen Gerätekontext eines Fensters.
BitBlt (dc,
0, 0, windowWidth, windowHeight,
ffMemoryDc,
0, 0,
SRCCOPY
);
Die Variable ffBitmap wird nirgendwo sonst im gesamten Programm verwiesen, doch, wenn ich nicht AuswählenObjekt (ffBitmap) tun, nichts gezogen wird, so es ist notwendig.
Ich würde mich freuen, wenn jemand etwas Licht werfen könnte, was hier passiert.
Betrachten Sie es als einen Stempel. Erstellt von SelectObject, angewendet mit BitBlt. Die zusätzliche Indirektion ist wichtig. –