用MFC添加一张本地图片作为窗口背景,如何实现,求具体代码
1个回答
展开全部
首先把图片格式转化为位图。
以vs2010为例:
*.Dlg.cpp文件中添加:
/////////////////////////////////////////////////////////////////
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
HBITMAP bit;
HDC MemDC;
int w,h;
CString cc;
BOOL loadbmp(CString cc)
{
DeleteObject(bit);
bit=(HBITMAP)LoadImage(AfxGetInstanceHandle(),cc,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if(bit==NULL)return FALSE;
DIBSECTION ds;
BITMAPINFOHEADER &bm=ds.dsBmih;
GetObject(bit,sizeof(ds),&ds);
w=bm.biWidth;
h=bm.biHeight;
return TRUE;
}
//////////////////////////////////////////////////以上代码放在开头作为全局变量的定义和函数的定义
//在:OnPaint()函数的else中添加:
CClientDC dc(this);
MemDC=CreateCompatibleDC(dc.m_hDC);
cc="C:/bg3.bmp";//图片路径
if(loadbmp(cc)==FALSE)
{
AfxMessageBox(cc+" not finding!");
return;
}
SelectObject(MemDC,bit);
BitBlt(dc.m_hDC,0,0,w,h,MemDC,0,0,SRCCOPY);
DeleteDC(MemDC);
即可
以vs2010为例:
*.Dlg.cpp文件中添加:
/////////////////////////////////////////////////////////////////
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
HBITMAP bit;
HDC MemDC;
int w,h;
CString cc;
BOOL loadbmp(CString cc)
{
DeleteObject(bit);
bit=(HBITMAP)LoadImage(AfxGetInstanceHandle(),cc,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if(bit==NULL)return FALSE;
DIBSECTION ds;
BITMAPINFOHEADER &bm=ds.dsBmih;
GetObject(bit,sizeof(ds),&ds);
w=bm.biWidth;
h=bm.biHeight;
return TRUE;
}
//////////////////////////////////////////////////以上代码放在开头作为全局变量的定义和函数的定义
//在:OnPaint()函数的else中添加:
CClientDC dc(this);
MemDC=CreateCompatibleDC(dc.m_hDC);
cc="C:/bg3.bmp";//图片路径
if(loadbmp(cc)==FALSE)
{
AfxMessageBox(cc+" not finding!");
return;
}
SelectObject(MemDC,bit);
BitBlt(dc.m_hDC,0,0,w,h,MemDC,0,0,SRCCOPY);
DeleteDC(MemDC);
即可
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询