关于 CreateCompatibleDC 函数的有关问题,求教
关于 CreateCompatibleDC 函数的问题,求教!
void fun(HDC hdc)
{
HDC memdc;
HBITMAP hNewBmp;
memdc = CreateCompatibleDC(hdc);
hNewBmp = CreateCompatibleBitmap(hdc, 50, 50);
hOrigBmp = GetCurrentObject(memdc, OBJ_BITMAP);
SelectObject(memdc, hNewBmp);
BitBlt(memdc, 0, 0, 50, 50, hdc, 0, 0, SRCCOPY);
return;
}
上面代码中,为什么必须为memdc创建一个新位图后BitBlt函数才有效呢?如果像下面这样,直接用memdc的最初位图,BitBlt函数就没有效果,为什么呢???
memdc = CreateCompatibleDC(hdc);
BitBlt(memdc, 0, 0, 50, 50, hdc, 0, 0, SRCCOPY);
------解决方案--------------------
memdc = CreateCompatibleDC(hdc); 后memdc中的bitmap很小,没什么用
void fun(HDC hdc)
{
HDC memdc;
HBITMAP hNewBmp;
memdc = CreateCompatibleDC(hdc);
hNewBmp = CreateCompatibleBitmap(hdc, 50, 50);
hOrigBmp = GetCurrentObject(memdc, OBJ_BITMAP);
SelectObject(memdc, hNewBmp);
BitBlt(memdc, 0, 0, 50, 50, hdc, 0, 0, SRCCOPY);
return;
}
上面代码中,为什么必须为memdc创建一个新位图后BitBlt函数才有效呢?如果像下面这样,直接用memdc的最初位图,BitBlt函数就没有效果,为什么呢???
memdc = CreateCompatibleDC(hdc);
BitBlt(memdc, 0, 0, 50, 50, hdc, 0, 0, SRCCOPY);
------解决方案--------------------
memdc = CreateCompatibleDC(hdc); 后memdc中的bitmap很小,没什么用