HDC hdcScreen = GetDC(NULL);
HDC hdcWindow = GetDC(mWin);
HDC hdcMem = CreateCompatibleDC(hdcScreen);
if (!hdcScreen || !hdcWindow || !hdcMem){
MessageBox(NULL, "could not locate hdc's", "Viewer", MB_ICONERROR);
}
if (!StretchBlt(hdcMem, 0, 0, 300, 300, hdcScreen, 0, 0, 300, 300, SRCCOPY)){
MessageBox(NULL, "stretchblt failed", "Viewer", MB_ICONERROR);
}
else if (!BitBlt(hdcWindow, 0, 0, 300, 300, hdcMem, 0, 0, SRCCOPY)){
// error
MessageBox(NULL, "stretchblt failed", "Viewer", MB_ICONERROR);
}
ReleaseDC(NULL, hdcScreen);
ReleaseDC(mWin, hdcWindow);
ReleaseDC(mWin, hdcMem);
从Screen到Window单次调用StretchBlt工作正常,但上面没有。 任何有用的提示?
[编辑] 没有错误被触发,所以一切似乎都运行正常,但是与mWin相关的窗口是空白的。
答案 0 :(得分:3)
您需要使用SelectObject
创建位图并将其选择到内存DC中。