登录
首页 » VC++源码 » VC++ 6.0 使用IPicture读取显示多种格式的图像(图片)并缩放

VC++ 6.0 使用IPicture读取显示多种格式的图像(图片)并缩放

于 2022-07-21 发布 文件大小:21.28 kB
0 249
下载积分: 2 下载次数: 1

代码说明:

VC++ 6.0 使用IPicture显示多种格式的图片,并可进行图片的放大和缩小等缩放操作,本实例中从全局内存中,创建IStream,从图像文件创建IPicture对象,读文件数据到内存。支持的文件类型有:bmp;*.gif;*.jpg;*.ico;*.emf;*.wmf;获取图像的长度和宽度代码如下:   long hmWidth;   long hmHeight;   m_lPciture->get_Width(&hmWidth);//图像的长度   m_lPciture->get_Height(&hmHeight);//图像的宽度   SIZE sz;   sz.cx = hmWidth;   sz.cy = hmHeight;   pDC->HIMETRICtoDP (&sz);//从OLE对象尺寸转换为像素值   sz.cx = (sz.cx * m_nScale) / 100;   sz.cy = (sz.cy * m_nScale) / 100;   RECT rc;   GetClientRect(&rc);   SetScrollSizes(MM_TEXT, sz);//设置滚动窗口的尺寸   // 显示图像   m_lPciture->Render(pDC->m_hDC,    0, //水平坐标位置    0, //垂直坐标位置    sz.cx, //水平尺寸    sz.cy, //垂直尺寸    0, //源图像的水平偏移    hmHeight,//源图像的垂直偏移    hmWidth,//复制源图像的水平长度    -hmHeight,//复制源图像的垂直长度    &rc);//显示图像的矩形区域

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • VC++ 音乐播放器
    VC++ 音乐播放器 例子,支持播放列表 ,支持常规的播放控制,自制了界面,从这个播放器软件中,你可以学习到软件界面方面的编写技巧以及音乐播放方面的技巧,运行效果如下图所示。本源码对学习VC++软件编程有很好的借鉴作用。
    2022-05-20 10:54:09下载
    积分:1
  • VC++ 获取IE运行实例的标题,并修改其标题
    VC++ 获取IE运行实例的标题,并修改其标题,大致的实现步骤:设置列表控件的风格、创建COM变量的实例、获取当前正在运行的所有IE窗口的标题信息,刷新列表控件、释放IE实例对象、获得第i个ie实例、获得文档对象、获得文档标题、将IE标题填充到列表框、用户选择指定的IE标题项,然后设定ie标题、销毁窗口时,清除com环境、清除所有com对象。
    2022-03-31 12:59:54下载
    积分:1
  • VC利用OpenGL绘制NURBS曲线
    VC++利用OpenGL绘制NURBS曲线,程序将进行缓冲区交换,交换缓冲区,运行后将生成一个三维曲线图,模拟NURBS曲线效果,最终效果请参见示例图所示。
    2022-01-26 07:51:48下载
    积分:1
  • VC++ 获取所有进程并进行管理-进程管理器
    进程:进程管理器,VC++ 6.0枚举获取所有进程并进行管理-模拟一个进程管理器的写法,枚举Windows中所有正在运行的进程,本示例将演示如何获取进程路径,打开进程句柄,获取进程优先级,终止进程主函数,创建状态栏,获取当前行行号,在状态栏上显示时间,取得选择项目的索引,重新取得第一个位置,更新进程等。
    2022-01-22 05:53:39下载
    积分:1
  • VC++ 利用Word文档实现打印功能
    VC++ 6.0 利用Word文档实现打印功能,本示例是将需要打印的内容导入到Word文档中,然后直接打开Word文档,用户通过Word选择打印功能,打印出内容,其核心的打印是由word完成的,因此你的电脑上需要安装有Word,并且与打印机已连接好。   在调试时注意:时需要导入一个ADO动态链接库msado15.dll,该动态库位于系统盘下的“Program FilesCommon FilesSystemado”目录下。   例:如果你的系统盘为C盘,则该文件位于“C:Program FilesCommon FilesSystemado”目录中。所以需要打开工程文件,并展开“FileView”视图中的“Header Files”节点,然后双击“StdAfx.h”文件,将代码中的“d:Program FilesCommon FilesSystemadomsado15.dll”改为“c:Program FilesCommon FilesSystemadomsado15.dll”。
    2022-03-05 03:24:43下载
    积分:1
  • VC++ 6.0创建带有文本指示的自定义进度条
    VC++ 6.0创建带有文本指示的自定义进度条,自己创建的带有文本的进度条:,   GetClientRect(&rectClient);//获取进度条窗口   CBrush brush;   brush.CreateSolidBrush(::GetSysColor(COLOR_3DFACE));//获取系统画刷   dc.FillRect(&rectClient, &brush);//填充进度条窗口   VERIFY(brush.DeleteObject());//删除画刷   if (m_nCurrentPosition m_nUpper)//进度条没有运行   {    return;   }   brush.CreateSolidBrush(RGB(0, 0,255));//创建蓝色画刷   RECT rectFill;//定义填充区域   float fillwidh=(float)((float)(m_nCurrentPosition-m_nLower)/(float)(m_nUpper-m_nLower))*rectClient.right;   ::SetRect(&rectFill,    0,// 左上X坐标    0,//左上Y坐标    (int)fillwidh,//右下X坐标    rectClient.bottom+1);//右下Y坐标   dc.FillRect(&rectFill,&brush);//填充进度条区域   VERIFY(brush.DeleteObject());   CString percent;   percent.Format("已完成:%.0f%%", 100.0*(float)(m_nCurrentPosition-m_nLower)/(float)(m_nUpper-m_nLower));   dc.SetTextColor(RGB(255,0,0));//设置文本颜色   dc.SetBkMode(TRANSPARENT);//透明背景   dc.DrawText(percent, &rectClient, DT_VCENTER|DT_CENTER|DT_SINGLELINE);//显示文本信息
    2023-06-16 21:25:02下载
    积分:1
  • VC 随机数选号程序
    VC 随机数选号程序 源代码,窗口中的每一个文本框对应一个随机数数组,当点击开始按钮后,这些数组各自为战,分别生成不同的随机数,当用户点击停止后,各个文本框中的随机数是不同的,由此可生成一个随机选号程序。   你可学习到生成随机数的线程、更新编辑框数字的线程、生成随机数、开始选号、更新按钮状态等相关的事件处理操作。
    2022-03-12 18:31:14下载
    积分:1
  • VC++ 图像压缩:将BMP文件压缩成JPG文件
    VC++ 图像压缩:将BMP文件压缩成JPG文件,在完成图片压缩的同时,转换图片的格式了,完成这些功能借助了一款外部的DLL文件,JpgDll.dll,因此在编译时请确保此文件存在。   操作方式也挺简单,如图所示,打开指定的BMP文件,然后单击“压缩”按钮,操作完成单击“保存”即可。
    2022-02-15 22:47:52下载
    积分:1
  • VC 创建内存映像文件对象并使用
    VC++6.0 创建内存映像文件对象并使用,实现了写入内存映射文件和从内存映射文件中读取数据,比如将数据从内存映射文件读出,实现方法如下:   void CFileMapTransTxtDlg::OnRead()   {    //创建内存映像对象    HANDLE hMapping;    LPSTR lpData;    hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x100,"MYSHARE");    if(hMapping==NULL)    {    AfxMessageBox("CreateFileMapping() failed.");    return;    }    //将文件的视图映射到一个进程的地址空间上,返回LPVOID类型的内存指针    lpData=(LPSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);    if(lpData==NULL)    {    AfxMessageBox("MapViewOfFile() failed.");    return;    }    //给这段映像内存的数据赋给本地变量    m_strDest.Format("%s",lpData);    //释放映像内存    UnmapViewOfFile(lpData);    //更新数据    UpdateData(FALSE);   }
    2022-05-17 02:25:47下载
    积分:1
  • VC++ Thread多线程执行不同任务的例子
    VC++ 创建多个 Thread多线程,用以执行不同任务的例子,运行程序后你可看到分别有红色、蓝色的小球,在沿各自不同的轨迹做运动,在代码中,我们创建了一个小球运动线程的主函数,分别用两个线程调用这个函数,但设定的参数不一样,在小球运动函数中,分别定义了小球X、Y方向的运动,确定重绘区域,重绘小球,挂起线程,控制小球速度,并取得客户区大小以及取得小球客户区相对于窗口客户区的位置等,最好还写了一个函数,终止蓝色和红色线程。
    2022-12-06 04:40:03下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载