我想把位图缩小到按钮上,想法是先用StrerchBlt缩小到一个中间DC,然后再把中间DC输出到按钮上,结果一片空白,什么也没有
然后无意间直接把位图DC输出到按钮,结果好了
这是为什么呢?我的理解是HDC是一块画布的代号,StretchBlt是将另一块画布内容缩放后复制到另一个画布,BitBlt是将一个画布内容原封不动复制到另一个画布上
刚学这些,有点迷糊。
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
HDC hdcMen = CreateCompatibleDC(hdc);
HDC hdcSca = CreateCompatibleDC(hdc);
BITMAP bmp;
GetObject(hbitmap, sizeof(BITMAP), &bmp);
SelectObject(hdcMen, hbitmap);
//1.
{
StretchBlt(hdcSca, 0, 0, 500, 300,
hdcMen, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);
BitBlt(hdc, 0, 0, 50, 30, hdcSca, 0, 0, SRCCOPY);
}
//2.
{
StretchBlt(hdc, 0, 0, 500, 300,
hdcMen, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);
}
ReleaseDC(hwnd, hdc);
DeleteDC(hdcMen);
DeleteDC(hdcSca);
EndPaint(hwnd, &ps);
return 0;
}
不能
DC是画板,图片是画布,画布要放在画板上才能画,画板上不放画布是抄不了别人的画的