解决方案 »

  1.   

    不知道你的显示代码是怎么写的,
    另外对话框设置具有以下两个样式:
    WS_CLIPCHILDREN 
    WS_CLIPSIBLINGS 
      

  2.   

    我用的是版主提供的代码,截取了整个桌面
    HBITMAP hBitmap; //  定义为类的成员变量,在OnInitDialog中初始化BOOL CNewDlg::OnInitDialog()
    {
     ...
     hBitmap = GetScreenHBITMAP();
     ShowWindow(SW_MAXIMIZE);
     return FALSE;
    }HBITMAP CNewDlg::GetScreenHBITMAP()
    {
    HDC hScrDC = GetDC(NULL);
    ASSERT(hScrDC); HDC hMemDC = CreateCompatibleDC(hScrDC);
    ASSERT(hMemDC); int nWidth = GetSystemMetrics(SM_CXSCREEN);
    int nHeight = GetSystemMetrics(SM_CYSCREEN); HBITMAP hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);
    HBITMAP hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);
    BitBlt(hMemDC, 0, 0, nWidth, nHeight, hScrDC, 0, 0, SRCCOPY);
    hBitmap = (HBITMAP)SelectObject(hMemDC, hOldBitmap); DeleteDC(hMemDC);
    ReleaseDC(NULL, hScrDC); return hBitmap;
    }void CNewDlg::OnPaint()
    {
    CPaintDC dc(this); // device context for painting

    ASSERT(hBitmap);  CDC memDC;
    memDC.CreateCompatibleDC(&dc);
    HBITMAP hOldBmp = (HBITMAP)memDC.SelectObject(hBitmap);
    CRect rect;
    GetClientRect(&rect);
    dc.BitBlt(rect.left, rect.top, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY); memDC.SelectObject(hOldBmp);

    }