我想我确实理解如果将“对象”选择为“设备接触对象”,并且如果该对象是画笔,字体,钢笔,则会发生什么情况:因此,这些对象的特征将用于在设备上下文上进行绘制。
但是,我不明白在设备上下文中选择一个位图后会发生什么,更不用说为什么这样做了。
我有一个程序
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),则不会绘制任何内容,因此是是必需的。
我希望有人能阐明一下这里发生的情况。
最佳答案
这就是它的工作方式。您在DC中选择的位图是“绘制在”上的位图。引用MSDN: