提几种思路吧,LZ看看有没有参考价值。
1、SetWindowsHookEx勾挂桌面的WM_PAINT消息。
2、CreateDesktop、SwitchDesktop创建一个新桌面。
3、修改桌面设置,参考IActiveDesktop接口。

解决方案 »

  1.   

    HDC hScrDC, hMemDC;HBITMAP hBitmap;hScrDC =::GetDC (0);
    hMemDC =::CreateCompatibleDC(hScrDC);hBitmap=::CreateCompatibleBitmap (hScrDC,0,0); 
    hBitmap=::LoadBitmap (0,"D:\\girl.bmp");
    hBitmap = CreateCompatibleBitmap(hMemDC, 300, 300);
    hBitmap =(HBITMAP)SelectObject(hMemDC, hBitmap);BitBlt(hScrDC, 50, 50, 800, 800,hMemDC, 11, 1, SRCCOPY);
    帮忙看看这段代码,画不出图,只在桌面上有一块黑
      

  2.   

    hScrDC = ::GetDC(0); 
    改成
    hScrDC = ::GetDC(GetDesktopWindow()); 
      

  3.   

    hBitmap=::CreateCompatibleBitmap   (hScrDC,0,0);   
    hBitmap=::LoadBitmap   (0,"D:\\girl.bmp"); 
    hBitmap   =   CreateCompatibleBitmap(hMemDC,   300,   300); 
    hBitmap   =(HBITMAP)SelectObject(hMemDC,   hBitmap); 
    怎么左边都是hBitmap?都覆盖了。
      

  4.   

    HDC   hScrDC,   hMemDC; 

    HBITMAP   hBitmap; 

    hScrDC = ::GetDC(NULL); 
    hMemDC = ::CreateCompatibleDC(hScrDC); 

    CBitmap bitmap;
    bitmap.LoadBitmap(IDB_BITMAP1);
    hBitmap = CreateCompatibleBitmap(hMemDC,   300,   300); 
    SelectObject(hMemDC,   bitmap.GetSafeHandle()); 

    BitBlt(hScrDC,   0,   0,   500,   500,hMemDC,   100,   100,   SRCCOPY); 1.IDB_BITMAP1是资源文件.
    2.其中有几个参数是乱写的,建议修改后使用.
      

  5.   

    HDC   hScrDC,   hMemDC; HBITMAP   hBitmap; hScrDC   =::GetDC   (0); 
    hMemDC   =::CreateCompatibleDC(hScrDC); hBitmap=::CreateCompatibleBitmap   (hScrDC,0,0);   
    hBitmap=::LoadBitmap   (0,"D:\\girl.bmp"); 
    hBitmap   =   CreateCompatibleBitmap(hMemDC,   300,   300); 
    hBitmap   =(HBITMAP)SelectObject(hMemDC,   hBitmap); BitBlt(hScrDC,   50,   50,   800,   800,hMemDC,   11,   1,   SRCCOPY); 
    帮忙看看这段代码,画不出图,只在桌面上有一块黑
    //---------------------------------------------------------------------
    //建议改一下
    HDC   hScrDC, hScreen;HBITMAP   hBitmap;hScreen = CreateDC("DISPLAY", NULL, NULL, NULL, NULL);hScrDC   =::CreateCompatibleDC(hScreen); hBitmap= ::LoadImage(NULL, "d:\\1.bmp", IMAGE_BITMAP, 0, 0, LR_FROMFILE);SelectObject(hScrDC,   hBitmap); BitBlt(hScreen,   50,   50,   800,   800,hScrDC,   11,   1,   SRCCOPY); DeleteObject(hBitmap);
    DeleteDC(hScrDC);
    DeleteDC(hScreen);这样可以避免内存泄露的问题
    帮忙看看这段代码,画不出图,只在桌面上有一块黑
      

  6.   

    这些方法都会覆盖住桌面图标,你可以看一下<<BC深度历险>>,可以解决你的问题,但它也有缺点,就是你移动桌面上的窗口时,它会闪出原来的桌面墙纸