Что означает SelectObject (dc , hBMP)?

Думаю, я понимаю, что произойдет, если я выберу «объект» в «контекст устройства», и если этот объект является кистью , шрифтом , пером : символы этих объектов в дальнейшем используются для рисования в контексте устройства.

Однако я не понимаю, что происходит после выбора растрового изображения в контексте устройства, не говоря уже о том, почему это необходимо.

У меня есть программа, которая кое-что делает

HDC dc = ::GetDC(hWnd);

ffBitmap   = ::CreateCompatibleBitmap(dc, windowWidth, windowHeight);
ffMemoryDc = ::CreateCompatibleDC(dc);

hOldBitmap          = (HBITMAP) ::SelectObject(ffMemoryDc, ffBitmap);

, а затем обращается к ffMemoryDc , а затем * BitBlt * s ffMemoyDc в контекст реального устройства окно.

BitBlt ( dc, 
         0, 0, windowWidth, windowHeight,
         ffMemoryDc,
         0, 0,
         SRCCOPY
       );

Переменная ffBitmap не упоминается больше нигде во всей программе, однако, если я не использую SelectObject (ffBitmap), ничего не будет отрисовано, поэтому это необходимо.

Я был бы признателен, если бы кто-нибудь пролил свет на то, что здесь происходит.

9
задан René Nyffenegger 17 January 2011 в 00:14
поделиться