从hdc剪贴位图里为什么位图不是粉红色呢????
//剪贴板函数
void CopyToClipboard2(HDC hdc)
{
HBITMAP hmap;
if ((hmap = (HBITMAP)::GetCurrentObject(hdc, OBJ_BITMAP)) != NULL)
{
BITMAP bm;
if (::GetObject(hmap, sizeof(BITMAP), &bm))
{
HDC hMemDC = CreateCompatibleDC(hdc);
HBITMAP hBitmap;
HBITMAP hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap = CreateCompatibleBitmap(hMemDC, bm.bmWidth, bm.bmHeight));
BitBlt(hMemDC, 0, 0, bm.bmWidth, bm.bmHeight, hdc, 0, 0, SRCCOPY);
SelectObject(hMemDC, hOldBitmap);
DeleteDC(hMemDC);
if (OpenClipboard(GetDesktopWindow()))
{
EmptyClipboard();
SetClipboardData(CF_BITMAP, hBitmap);
CloseClipboard();
}
else
{
DeleteObject(hBitmap);
}
}
}
}
void testpng::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);
CDC pWndDC;
CBitmap bmpBack;
CBitmap* COldBit;
bmpBack.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height());
pWndDC.CreateCompatibleDC(&dc);
COldBit = pWndDC.SelectObject(&bmpBack);
pWndDC.FillSolidRect(&rect,RGB(255,0,255));
CopyToClipboard2(pWndDC.m_hDC);//为什么是粉色
}