将当前操作系统当前图像显示在对话框控件中……就好像按(print Screec)键的图像一样。
邮件:[email protected]  就差最后一步了,各位大侠帮解救下。明天晚上答谢。一点了,要睡觉了。100分送出。谢谢

解决方案 »

  1.   

    CDC *pDC=GetDesktopWindow()->GetDC();这样就是桌面的DC了,你想怎么做就怎么做,想画在窗口就bitblt过来就OK
      

  2.   

    void CXXXDlg::OnPaint() 
    {
    CPaintDC dc(this);
    CDC memDC;
    memDC.CreateCompatibleDC(&dc);
    ASSERT(memDC.GetSafeHdc());
    CBitmap bitmap;
    CRect rc;
    GetClientRect(&rc);
    bitmap.CreateCompatibleBitmap(&dc, rc.Width(), rc.Height());
    ASSERT(bitmap.GetSafeHandle());
    CBitmap* pBmp = (CBitmap*)memDC.SelectObject(&bitmap);
    CDC* pDC = GetDesktopWindow()->GetDC();
    CRect rect;
    GetDesktopWindow()->GetWindowRect(&rect);
    memDC.StretchBlt(0, 0, rc.Width(), rc.Height(), pDC, 0, 0, rect.Width(), rect.Height(), SRCCOPY);
    dc.BitBlt(0, 0, rc.Width(), rc.Height(), &memDC, 0, 0, SRCCOPY);
    memDC.SelectObject(pBmp);
    bitmap.DeleteObject();
    memDC.DeleteDC();
    }
    差不多就是这个样子了
      

  3.   

        谢谢VisualEleven帅蜗的回答,这段代码可以用,可是如果我使用如下代码最大化对话框后就显示不了,这是为什么?
    LONG style = GetWindowLong(m_hWnd, GWL_STYLE);    //得到窗口风格
    ::ShowWindow(m_hWnd, SW_MAXIMIZE);
    style = GetWindowLong(m_hWnd, GWL_STYLE);
    style &= ~(WS_DLGFRAME | WS_THICKFRAME);
    SetWindowLong(m_hWnd, GWL_STYLE, style);          //设置窗口风格
    int cx = GetSystemMetrics(SM_CXSCREEN);
    int cy = GetSystemMetrics(SM_CYSCREEN);
    ::SetWindowPos(m_hWnd, HWND_TOPMOST, -1, -1, cx+3, cy+3, SWP_FRAMECHANGED);//实现全屏显示
    ::InvalidateRect(m_hWnd,NULL,TRUE);   
      

  4.   


    LONG style = GetWindowLong(m_hWnd, GWL_STYLE); //得到窗口风格
    ::ShowWindow(m_hWnd, SW_MAXIMIZE);
    style = GetWindowLong(m_hWnd, GWL_STYLE);
    style &= ~(WS_DLGFRAME | WS_THICKFRAME);
    SetWindowLong(m_hWnd, GWL_STYLE, style); //设置窗口风格
    int cx = GetSystemMetrics(SM_CXSCREEN);
    int cy = GetSystemMetrics(SM_CYSCREEN);
    ::SetWindowPos(m_hWnd, HWND_TOPMOST, -1, -1, cx+3, cy+3, SWP_FRAMECHANGED);//实现全屏显示
    ::InvalidateRect(m_hWnd,NULL,TRUE);  
     
    不加上上面一句能显示,加上上面一句显示不了。这是为什么呢。我需要对话框一开始就最大化,然后显示桌面,看起来像真桌面一样,然后在上面画图。似乎屏保程序%^%%%%%%
    up 
    up 
    up 
    up 
      

  5.   

    加上那句显示不了?InvalidateRect() ?
      

  6.   

    不是的。不知道怎么回事!图像的那些cdc 什么的一看就晕
      

  7.   

    终于解脱了,谢谢大家的帮忙,对GDI一窍不通 结帖,给分