代码之家  ›  专栏  ›  技术社区  ›  default

通过记忆的记忆不起作用

  •  0
  • default  · 技术社区  · 15 年前
    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);
    

    从屏幕到窗口调用StretchBlt可以正常工作,但上面没有。 有什么有用的提示吗?

    [编辑] 不会触发任何错误,因此似乎一切正常,但是与mwin相关的窗口是空白的。

    1 回复  |  直到 15 年前
        1
  •  3
  •   interjay    15 年前

    您需要创建位图并使用 SelectObject .