你好,如何实现点击按钮显示图片,而不是picture控件?谢谢了……急~~
展开全部
你的意思是直接显示硬盘上的图片么,VC6.0的话实现起来有点麻烦,.net 2003要简单很多。
我们要做的第一步是把图片的内容读取进内存。怎么才能实现呢。。。。
2003中有个ATL类CImage能直接读取图片。只需要#include <atlimage.h>头文件就可以了。
然后我们需要添加一个static静态文本控件来显示图片,假设ID为IDC_STATIC,显示图片的代码段如下:
CImage image;
image.Load(_T("D:\\1.bmp"));
HBITMAP hbmp = image.Detach();
CStatic *pStatic = (CStatic *)GetDlgItem(IDC_STATIC);
pStatic->ModifyStyle(0, SS_BITMAP);//修改控件属性用来显示图片,只需要做一次
pStatic->SetBitmap(hbmp);
很简单的。D:\\1.bmp就是你图片在硬盘上的位置,如果要显示多张图片,自己用for循环就可以了。
如果是vc6.0的话需要自己得到相关图片的一个HBITMAP句柄,这个需要了解位图的格式,然后使用DIB相关函数。如果没有接触过还是不推荐了。
我们要做的第一步是把图片的内容读取进内存。怎么才能实现呢。。。。
2003中有个ATL类CImage能直接读取图片。只需要#include <atlimage.h>头文件就可以了。
然后我们需要添加一个static静态文本控件来显示图片,假设ID为IDC_STATIC,显示图片的代码段如下:
CImage image;
image.Load(_T("D:\\1.bmp"));
HBITMAP hbmp = image.Detach();
CStatic *pStatic = (CStatic *)GetDlgItem(IDC_STATIC);
pStatic->ModifyStyle(0, SS_BITMAP);//修改控件属性用来显示图片,只需要做一次
pStatic->SetBitmap(hbmp);
很简单的。D:\\1.bmp就是你图片在硬盘上的位置,如果要显示多张图片,自己用for循环就可以了。
如果是vc6.0的话需要自己得到相关图片的一个HBITMAP句柄,这个需要了解位图的格式,然后使用DIB相关函数。如果没有接触过还是不推荐了。
追问
谢谢啊,不过用vc++6.0很难实现吗?我们是用vc++6.0做的啊……
追答
自己去找下atlimage.h以及相关的头文件,也是一样可以使用的。怎么也比自己写方便。2003就能直接使用,你去网上下个吧。
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询