方法很多1,创建一个全屏幕的窗口,窗口里显示BITMAP
这里用MFC生成一个对话框,在上面放一个BITMAP控件(就是你的temp.bmp,具体加控件方法偶就不说了),在资源编辑起里修改对话框属性,去掉标题条,去掉边框,使其成dialogbar模样(不这样也成,关键是后面的setwindowpos函数)
在InitDialog函数里加上
SetWindowPos(&wndTop,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),SWP_NOMOVE   |SWP_NOSIZE   |SWP_SHOWWINDOW   );然后GetDlgItem(IDC_BMP)->SetWindowPos(&wndTop,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),SWP_NOMOVE   |SWP_NOSIZE   |SWP_SHOWWINDOW   );就行了
上面代码是我平空想的也没测试,道理成了就行了,你动手试试就行了方法2,直接操作屏幕,不创建窗口HDC hdc=::GetDC(0);//获得屏幕DC
之后我就不说了,打字多了手指疼

解决方案 »

  1.   

    这个问题,俺回答了N遍,从中得到不少好处、、、西西西西~~void DrawDesktop()
    {    HDC hdc = ::GetDC(0); //获得桌面HDC HBITMAP hbitmap;
    HDC fromdc;
    hbitmap=(HBITMAP)LoadImage(GetModuleHandle(NULL),"temp.bmp",
    IMAGE_BITMAP,
    0,0,//这两个参数是0就是全选图片
    LR_LOADFROMFILE | 
    LR_CREATEDIBSECTION );
    fromdc=CreateCompatibleDC(NULL);
    SelectObject(fromdc,hbitmap);
    StretchBlt(hdc,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),fromdc,0,0,520/*图片宽*/,316/*高*/,SRCCOPY);    DeleteObject(hbitmap);
    DeleteDC(fromdc);
    }
      

  2.   

    显示完后,记得用
    InvalidateRect(0,NULL,0); 
    刷新屏幕