用MFC添加一张本地图片作为窗口背景,如何实现,求具体代码

用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)

即可

先在资源里Import一张图片,ID为IDB_BITMAP2

然后在对话框上添加一个picture控件,右键点击打开属性,

将type下拉框选择BITMAP,紧跟着下面就出现一个Image下拉框,

拉开就会看到所有已经载入好的图片,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11762978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存