ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:52.50KB ,
资源ID:6868151      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6868151.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(图片显示器.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

图片显示器.doc

1、// 消息处理 void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { switch(id) { case IDC_OK: { TCHAR path[MAX_PATH+1]; OpenFile(hwnd,IDC_EDTPATH); ZeroMemory(path,sizeof(path)); GetDlgItemText(hwnd,IDC_EDTPATH,path,sizeof(path)); HDC hDC=GetDC(hwnd); DisplayImage(hDC,path);

2、 ReleaseDC(hwnd,hDC); } break; default: break; } } // 打开文件对话框 void OpenFile(HWND hwnd,int nIDDlgItem) { OPENFILENAME ofn; char szFile[MAX_PATH]; ZeroMemory(&ofn,sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.lpstrFile = szFile; ofn.lpstrFile[0] = TEXT('\0'); ofn.nMaxFile = sizeof(s

3、zFile); ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrTitle=TEXT("打开文件对话框"); ofn.lpstrFilter = TEXT("JPG | JPEG\0*.jpg;*.jpeg\0GIF\0*.gif\0\0"); ofn.nFilterIndex = 1; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_EXPLORER|OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST; GetOpenFileName(&ofn);

4、 SetDlgItemText(hwnd,nIDDlgItem,szFile); } // 显示JPEG或GIF格式图片 void DisplayImage(HDC hDC, LPCTSTR szImagePath) { // 实际读取的文件大小 DWORD dwReadedSize; // 创建一个IStream接口指针,用来保存图片流 IStream *pIStream; // 创建一个IPicture接口指针,表示图片对象 IPicture *pIPicture; // 原始图像的宽度和高度 OLE_XSIZE_HIMETRIC hmWidth; OL

5、E_YSIZE_HIMETRIC hmHeight; // 根据指定路径szImagePath获取文件句柄 HANDLE hFile=CreateFile(szImagePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); // 获得图片文件的大小 DWORD dwFileSize=GetFileSize(hFile, NULL); // 给图片分配全局内存 HGLOBAL hImageMemory=GlobalAlloc(GMEM_MOVEABLE, dw

6、FileSize); // 锁定内存 void *pImageMemory=GlobalLock(hImageMemory); // 读取图片到全局内存当中 ReadFile(hFile, pImageMemory, dwFileSize, &dwReadedSize, NULL); // 解锁内存 GlobalUnlock(hImageMemory); // 关闭文件句柄 CloseHandle(hFile); // 用全局内存初使化IStream接口指针 CreateStreamOnHGlobal(hImageMemory, FALSE, &pIStream) ; /

7、/ 用OleLoadPicture获得IPicture接口指针 OleLoadPicture(pIStream, 0, FALSE, IID_IPicture, (LPVOID*)&(pIPicture)); // 用接口方法获得图片的宽和高 pIPicture->get_Width(&hmWidth); pIPicture->get_Height(&hmHeight); // 在指定的DC上绘出图片 pIPicture->Render(hDC,10,70,200,200,0,hmHeight,hmWidth,-hmHeight,NULL); // 释放全局内存 Globa

8、lFree(hImageMemory); // 释放pIStream pIStream->Release(); // 释放pIPicture pIPicture->Release(); } CreateFile函数 HANDLE CreateFile( LPCTSTR lpFileName, // 指向文件名的指针 DWORD dwDesiredAccess, // 访问模式(写/读) DWORD dwShareMode, // 共享模式 LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 指

9、向安全属性的指针 DWORD dwCreationDisposition, // 如何创建 DWORD dwFlagsAndAttributes, // 文件属性 HANDLE hTemplateFile // 用于复制文件句柄 ); 参数lpFileName:要打开的文件的名字。 参数dwDesiredAccess:如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息。 参数dwShareMode:零表示不共享;FILE_SHARE_RE

10、AD 和/或 FILE_SHARE_WRITE 表示允许对文件进行共享访问。 参数lpSecurityAttributes:指向一个SECURITY_ATTRIBUTES结构的指针,定义了文件的安全特性(如果操作系统支持的话)。 参数dwCreationDisposition: CREATE_NEW 创建文件;如文件存在则会出错 CREATE_ALWAYS 创建文件,如文件存在则会覆盖 OPEN_EXISTING 文件必须已经存在 OPEN_ALWAYS 如文件不存在则创建它 TRUNCATE_EXISTING 将现有文件缩短为零长度 参数dwFla

11、gsAndAttributes: FILE_ATTRIBUTE_ARCHIVE 标记归档属性 FILE_ATTRIBUTE_COMPRESSED 标记为已压缩 FILE_ATTRIBUTE_NORMAL 默认属性 FILE_ATTRIBUTE_HIDDEN 隐藏文件或目录 FILE_ATTRIBUTE_READONLY 文件为只读 FILE_ATTRIBUTE_SYSTEM 文件为系统文件 FILE_FLAG_WRITE_THROUGH 操作系统不得推迟对文件的写操作   FILE_FLAG_OVERLAPPED 允许对文件进行重叠操作 FILE_F

12、LAG_NO_BUFFERING 禁止对文件进行缓冲处理 FILE_FLAG_RANDOM_ACCESS 针对随机访问对文件缓冲进行优化   FILE_FLAG_SEQUENTIAL_SCAN 针对连续访问对文件缓冲进行优化   FILE_FLAG_DELETE_ON_CLOSE 关闭了上一次打开的句柄后,将文件删除 参数hTemplateFile:如果不为NULL,则指定一个文件句柄。新文件将从这个文件中复制扩展属性。 GetFileSize函数 DWORD GetFileSize( HANDLE hFile, LPDWORD lpFileSizeHi

13、gh ); 参数hFile:文件句柄。 参数lpFileSizeHigh:DWORD变量的首地址,该变量用于存储FileSize的高32位,若不需获取这部分的值,该参数可以为 NULL。 返回值:FileSize的低32位。 GlobalAlloc函数 HGLOBAL GlobalAlloc(   UINT uFlags, // 分配属性(方式)   DWORD dwBytes // 分配的字节数 ); 参数uFlags: GMEM_FIXED 分配固定的内存,返回值是一个指针。 GMEM_MOVEABLE 分配可移动的内存,内存块在物理内存中是

14、不可移动的,但在缺省堆中可以。返回值是该内存对象的句柄,可使用函数 GlobalLock 将该句柄转换为一个指针。 注:用GMEM_MOVEABLE方式分配的内存是可移动的,所以要用句柄标识,不能用内存地址标识。有时我们需要的是一个内存地址,就要用GlobalLock函数将句柄转换为内存地址。对于用GMEM_FIXED方式分配的内存,返回的句柄就是内存地址,可以直接当内存地址使用。 参数dwBytes: 指定要分配的字节数。若该参数为 0 且参数 uFlags 指定为 GMEM_MOVEABLE 则该函数返回一个内存对象的句柄,该内存对象被标识为discarded(可抛弃的)。 返回值

15、若函数调用成功,则返回一个新分配的内存对象的句柄;若函数调用失败,则返回NULL。可调用 GetLastError 以获得更多错误信息。 GlobalLock函数 LPVOID GlobalLock( HGLOBAL hMem ); 参数hMem:全局内存对象句柄。该句柄由函数GlobalAlloc或GlobalReAlloc返回。 返回值:如果函数执行成功,返回值就是内存对象的首地址,否则返回NULL。调用GetLastError可以得到更多错误信息。 ReadFile函数 BOOL ReadFile( HANDLE hFile, LPVOID lpBuffer

16、 DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ); 参数hFile:文件的句柄。 参数lpBuffer:保存读入数据的缓冲区的首地址。 参数nNumberOfBytesToRead:要读入的字节数。 参数lpNumberOfBytesRead: DWORD类型变量的首地址,该变量用于存储实际读取的字节数。 参数lpOverlapped: 如果文件用FILE_FLAG_OVERLAPPED方式打开,那么该参数必须指向一个OVERLAPPED结构体。否则

17、这个参数可以设为NULL。 CreateStreamOnHGlobal函数 函数功能:从内存创建流对象。 WINOLEAPI CreateStreamOnHGlobal( HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm ); 参数hGlobal: 由GlobalAlloc函数分配的内存句柄。该句柄必须是以GMEM_MOVEABLE方式分配的并且是nondiscardable (不可抛弃的)。 参数fDeleteOnRelease: 该参数指明内存在该对象被释放后是否也自动释放。如果该参数设定为FALSE

18、那么调用者必须显示的释放hGlobal。如果该参数设置为TRUE,则hGlobal最终会自动释放。 参数ppstm:IStream类型对象的首地址,该对象用于存储新创建的流对象。 OleLoadPicture 功能:从流中创建一个新的图片对象并初始化它。 STDAPI OleLoadPicture( IStream * pStream, LONG lSize, BOOL fRunmode, REFIID riid, VOID ppvObj ); 参数pStream:图片数据流指针。 参数lSize:从流中读取数据的字节数,值为0表示全部读取。 参数

19、fRunmode:是否采用与图像初始化属性相反的属性值。 参数riid:描述ppvObj参数类型的接口标识。 参数ppvObj:图片对象指针 返回值:图片创建成功返回S_OK 函数库:olepro32.dll 头文件:olectl.h Render函数 功能:渲染图像 HRESULT Render( HDC hdc, // 设备上下文句柄 long x, long y, long cx, long cy, OLE_XPOS_HIMETRIC xSrc, OLE_YPOS_HIMETRIC ySrc, OLE_XSIZE_HIMETRIC cxSrc, OLE_YSIZE_HIMETRIC cySrc, LPCRECT prcWBounds // 指向矩形的指针,此矩形包含目的位置 ); 头文件:ocidl.h GetDC函数 功能:获取设备上下文句柄 HDC GetDC( HWND hWnd ); 注:GetDC获取的仅仅是窗口的工作区,不包含标题栏。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服