1、打开你的VS,创建一个WPF窗体程序。
2、创建好的WPF窗体程序是这样的。
3、在视图——属性窗口中调图窗体程序的属性,在属性的画笔栏中可以更改窗体程序的背景。
4、然后按键F5调试窗口看一下。
5、如果我想将WPF程序背景更改为任何一张其他的图片,如左图的枫叶。
6、可以看到我们的图片与应用程序的窗体大小不一致,我们只需要调节在图片边缘中部那里调整就行了。
7、修改好的图片就出来了,再按键F5调试运行一下看看。
第一步:选好.bmp的类型的图片。在资源视图中导入。随便复制到.res文件夹下。
第二步。在对话框上添加picture控件,调整到大小。右击属性选择Type选择Bitmap.
Image下拉组合框选择你导入的图片。运行时即可显示图片。
如果要设置和窗体一样的大小SetWindowPos就可以了。查查这个函数的作用
利用COM接口
实现。
void
DisplayImage(HDC
hDC,
LPCTSTR
szImagePath)
{
HANDLE
hFile=
CreateFile
(szImagePath,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_
ATTRIBUTE
_NORMAL,
NULL)
//从指定的路径szImagePath中读取文件
句柄
DWORD
dwFileSize=
GetFileSize
(hFile,
NULL)
//获得图片文件的大小,用来分配全局内存
HGLOBAL
hImageMemory=
GlobalAlloc
(GMEM_MOVEABLE,
dwFileSize)
//给图片分配全局内存
void
*pImageMemory=
GlobalLock
(hImageMemory)
//锁定内存
DWORD
dwReadedSize
//保存实际读取的文件大小
ReadFile(hFile,
pImageMemory,
dwFileSize,
&dwReadedSize,
NULL)
//读取图片到全局内存当中
GlobalUnlock
(hImageMemory)
//解锁内存
CloseHandle
(hFile)
//关闭文件句柄
IStream
*pIStream//创建一个IStream接口指针,用来保存图片流
IPicture
*pIPicture//创建一个IPicture接口指针,表示图片对象
CreateStreamOnHGlobal(hImageMemory,
false,
&pIStream)
//用全局内存初使化IStream接口指针
OleLoadPicture(pIStream,
0,
false,
IID_IPicture,
(LPVOID*)&(pIPicture))//用OleLoadPicture获得IPicture接口指针
//得到IPicture
COM接口对象后,你就可以进行获得图片信息、显示图片等 *** 作
OLE_XSIZE_HIMETRIC
hmWidth
LE_YSIZE_HIMETRIC
hmHeight
pIPicture->get_Width(&hmWidth)
//用接口方法获得图片的宽和高
pIPicture->get_Height(&hmHeight)
pIPicture->Render(hDC,0,0,100,100,0,hmHeight,hmWidth,-hmHeight,NULL)
//在指定的DC上绘出图片
GlobalFree(hImageMemory)
//释放全局内存
pIStream->Release()
//释放pIStream
pIPicture->Release()
//释放pIPicture
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)