




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
打开一幅图片1. 新建一个多文档的MFC应用程序.2. 在_Doc.h文件的C_Doc类中增加如下成员变量;public:int numquad; /调色板数int flagOpen; /标志是否打开bmpBITMAPINFO* pbi; /记录图像细节BYTE* lpbuf; /图像数据RGBQUAD* quad; /调色板BITMAPFILEHEADER bf;/文件头 BITMAPINFOHEADER bi; /信息头3. 修改”打开”菜单项的响应函数;a. 找到菜单资源b. 在”打开”菜单项建立类向导,页面设置如下:选择“Add function”,然后单击“Edit Code”编辑代码如下:void CZhbDoc:OnFileOpen() / TODO: Add your command handler code hereLPCTSTR lpszFilter=BMP Files(*.bmp)|*.bmp|任何文件|*.*|;CFileDialog dlg(TRUE,lpszFilter,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,lpszFilter,NULL);CString filepath;CFile file;/打开文件对话框if(dlg.DoModal()=IDOK)filepath=dlg.GetPathName();if(file.Open(filepath,CFile:modeRead|CFile:shareDenyNone,NULL)=0)/读取文件失败AfxMessageBox(无法打开文件!,MB_OK,0);return;/读取文件头file.Read(&bf,sizeof(bf);/判断是否是BMP文件if(bf.bfType!=0x4d42)/BMAfxMessageBox(非BMP文件!,MB_OK,0);return;/判断文件是否损坏if(file.GetLength()!=bf.bfSize)AfxMessageBox(文件已损坏,请检查!,MB_OK,0);return;/读文件信息头file.Read(&bi,sizeof(bi);/计算调色板数目numquad=0;if(bi.biBitCount24)numquad=1flagOpen=1) /这个函数显示DIBSetDIBitsToDevice(dc.m_hDC, /DIB将输出的设备描述表 0, /设备描述表中位图输出起始逻辑x地址 0, /设备描述表中位图输出起始逻辑x地址 pDoc-bi.biWidth, /DIB的宽度 pDoc-bi.biHeight, /DIB的高度 0, /DIB开始读取输出的像素数据的x位置 0, /DIB开始读取输出的像素数据的y位置 0, /DIB中像素的水平行号,它对应lpBits内存缓冲区第一行数据 pDoc-bi.biHeight, /DIB的行数,对应包含在由lpBits所指内存缓冲区中的数据 pDoc-lpbuf, /包含像素数据的内存缓冲区的指针 pDoc-pbi, /指向初始化了的BITMAPINFO数据结构的指针,描述了位图的大小和色彩数据 DIB_RGB_COLORS); /指定是显示的颜色 Invalidate(FALSE);/ Do not call CView:OnPaint() for painting messages保存一幅图片1.修改”另存为”菜单项的响应函数;a找到菜单资源b在”另存为”菜单项建立类向导,页面设置如下:选择“Add function”,然后单击“Edit Code”代码如下:void CZhbDoc:OnFileSaveAs() LPCTSTR lpszFilter=BMP Files(*.bmp)|*.bmp|任何文件|*.*|;CFileDialog dlg(FALSE,lpszFilter,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,lpszFilter,NULL);if (dlg.DoModal()!=IDOK)return;CFile file;CFileException fe;if (!file.Open(dlg.GetPathName(), CFile:modeCreate | CFile:modeReadWrite | CFile:shareExclusive, &fe) / 失败 ReportSaveLoadException(dlg.GetPathName(), &fe, TRUE, AFX_IDP_INVALID_FILENAME); return; file.SeekToBegin();file.Write(&bf,sizeof(bf);file.Write(&bi,sizeof(bi)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防水行业工作汇报
- 村村通道路汇报
- 科技文化节汇报
- 杂志广告计划书
- 公司级安全培训题库课件
- 公司级安全培训简答题课件
- 事故安全管理培训课件
- 油站班长年终总结
- 胆囊切除术术后护理措施
- 公司电气安全知识培训课件
- 公路养护技术管理与实施细则
- 2023-2025年中考物理试题分类汇编内能及内能和利用(有解析)
- GB/T 46023.2-2025汽车用智能变色玻璃第2部分:聚合物分散液晶调光玻璃
- 2025-2026学年北师大版数学小学三年级上册(全册)教案设计及教学计划
- 配阴婚协议书范本
- 仓库搬运工安全知识培训
- 2025年部编版新教材道德与法治二年级上册教学计划(含进度表)
- 铁路物流管理与实务理论知识考核试题及答案
- GB/T 45932-2025高压直流开关设备和控制设备标准的共用技术要求
- 藏族舞基础知识课件下载
- 铁杵磨针小学生课件
评论
0/150
提交评论