编程词典
明日图书
明日软件
用户注册
用户登录
站内
  当前位置:编程词典服务网 >> 编程词典社区论坛 >> 从磁盘中加载图像到窗口...
  · 从磁盘中加载图像到窗口中

用户:  大麦
发帖:  430 篇
作品:  0 个
回复:  110 篇
技术分:  1160 分
等级:  
注册:  2010-05-11 09:09:40



发表于:2010-07-13 16:43:26
          楼主

从磁盘中加载图像到窗口中
在开发程序时,通常需要从磁盘中动态加载一幅图像到窗口中。用户可以使用LoadImage函数来从磁盘加载图像文件。
LoadImage函数语法如下:
HANDLE LoadImage( HINSTANCE hinst, LPCTSTR lpszName, UINT uType, int cxDesired, int cyDesired,  UINT fuLoad );
参数说明:
 hinst:表示包含图像的实例句柄,可以为NULL。
 lpszName:表示图像的资源名称,如果从磁盘中加载,该参数表示图像的名称,包含完整路径。
 uType:表示加载的图像类型。为IMAGE_BITMAP,表示加载位图,为IMAGE_CURSOR,表示加载鼠标指针,为IMAGE_ICON,表示加载图标。
 cxDesired:表示图标或鼠标指针的宽度,如果加载的是位图,则该参数必须为0。
 cyDesired:表示图标或鼠标指针的高度,如果加载的是位图,则该参数必须为0。
 fuLoad:表示加载类型,如果为LR_LOADFROMFILE,表示从磁盘文件中加载位图。
 返回值:函数返回加载的图像资源句柄。
下面通过一个实例介绍如何从磁盘中加载图像到窗口中。
例如,从磁盘中加载图像到窗口中
(1)创建一个单文档/视图结构的应用程序,工程名称为“LoadBmp”。
(2)在视图类中添加一个成员变量m_hBmp。
(3)在视图类的构造函数中调用LoadImage方法从磁盘中加载文件。
CLoadBmpView::CLoadBmpView()
{
//加载位图
 m_hBmp = LoadImage(NULL,"Demo.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
}
(4)在视图类的OnDraw方法中绘制位图。
void CLoadBmpView::OnDraw(CDC* pDC)
{
 CLoadBmpDoc* pDoc = GetDocument();     //获取文档对象
 ASSERT_VALID(pDoc);        //验证文档对象
 CBitmap bmp;          //定义一个位图对象
 bmp.Attach(m_hBmp);        //将位图关联到位图句柄上
 CDC memDC;          //定义一个设备上下文
 memDC.CreateCompatibleDC(pDC);     //创建兼容的设备上下文
 memDC.SelectObject(&bmp);       //选中位图对象
 BITMAP BitInfo;         //定义位图结构
 bmp.GetBitmap(&BitInfo);        //获取位图信息
 int x = BitInfo.bmWidth;        //获取位图宽度
 int y = BitInfo.bmHeight;        //获取位图高度
 pDC->BitBlt(0,0,x,y,&memDC,0,0,SRCCOPY);   //向窗口中绘制位图
 bmp.Detach();          //分离位图句柄
 memDC.DeleteDC();         //释放设备上下文对象
}
 说明:在使用BitBlt方法对图像进行绘制时,目标设备上下文的大小应与当前设备上下文的大小相同,否则在绘制时就应指定图像拷贝的区域。
(5)运行程序,效果如图1所示。
 
图1  加载磁盘中的图像文件

 

本帖赏分:0 分   回复数:0 篇     
修改   删除   引用   回复
该帖暂无回复!
吉林省明日科技有限公司提供技术支持. 
Copyright © 1999-2008 吉林省明日科技有限公司. 吉ICP备10002740
当前时区 GMT+8, 今天是 
刷新页面 - 关于我们 - 设为首页