我想把位图贴到计算机桌面上,可是做了好久,都未实现,网上的帖子浏览无数,不是太难了,就是一帮只会吹牛,不会实干家伙的胡说,于是自己拿起了《windos程序设计》狂翻,于是找到答案,特地写出了与大家分享!!!
方法一:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
BITMAP BMap;
bitmap.GetBitmap(&BMap);//得到BITMAP 这个结构,然后得到图像的大小
long scrW,scrH;
scrW=BMap.bmWidth;
scrH=BMap.bmHeight;
HDC dcc=::GetDC(NULL);
CDC dcMem;
HDC ccd = CreateCompatibleDC(dcc);
dcMem.Attach(ccd);
dcMem.SelectObject(&bitmap);
BitBlt(dcc,0,0,scrW,scrW,dcMem.GetSafeHdc(),0,0,SRCCOPY);
bitmap.DeleteObject();
dcMem.Detach();
方法二:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
BITMAP BMap;
bitmap.GetBitmap(&BMap);
long scrW,scrH;
scrW=BMap.bmWidth;
scrH=BMap.bmHeight;
static CWindowDC ddc(GetDesktopWindow());
CDC *pDC=&ddc;
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);
dcMem.SelectObject(&bitmap);
pDC->SetStretchBltMode(HALFTONE);
pDC->StretchBlt(0,0,scrW,scrH,&dcMem,0,0,scrW,scrH,SRCCOPY);
bitmap.DeleteObject();
ReleaseDC(pDC);
DeleteDC(dcMem);