为什么要把兼容的DC和兼容的DC传给? CreateCompatibleBitmap()
带来不同的结果?
这个创建的是单色位图。
CDC dcMem;
dcMem.CreateCompatibleDC(mydc);
destBitmap->CreateCompatibleBitmap(&dcMem, rect.Width(), rect.Height());
CBitmap* pBmpOld = dcMem.SelectObject (destBitmap);
// ... Draw on to the DC ....
dcMem.SelectObject (pBmpOld);
这个可以创建正确的彩色位图
CDC dcMem;
dcMem.CreateCompatibleDC(mydc);
destBitmap->CreateCompatibleBitmap (mydc, rect.Width(), rect.Height());
CBitmap* pBmpOld = dcMem.SelectObject (destBitmap);
// ... Draw on to the DC ....
dcMem.SelectObject (pBmpOld);
TIA!
根据评论,请看一下以下内容 CreateCompatibleBitmap
文档。
注意:当一个内存设备上下文被创建时,它最初有一个 1乘1单色位图 选入其中。如果这个存储设备上下文被用于
CreateCompatibleBitmap
,创建的位图是一个 单色位图. 要创建一个彩色位图,请使用用于创建内存设备上下文的HDC,如下面的代码所示......。