博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在对话框显示图片的方法
阅读量:5757 次
发布时间:2019-06-18

本文共 1330 字,大约阅读时间需要 4 分钟。

添加函数:

// 显示位图 bool CPictureDlg::LoadPicture(void) { CDC *dc; dc=GetDC(); //得到对话框的设备环境 CDC dcMemory; dcMemory.CreateCompatibleDC(dc); //得到与对话框设备环境相兼容的内存DC CBitmap *bitmap = new CBitmap(); HBITMAP hbitmap; //装载图片 hbitmap=(HBITMAP)::LoadImage(NULL, "F://风景.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE); if(hbitmap) //成功 { bitmap-> Attach(hbitmap); } else { //出错。。返回 AfxMessageBox( "打开图像文件出错 "); //释放内存中的设备环境 ReleaseDC(dc); ReleaseDC(&dcMemory); delete bitmap; return false; } //取得图像的大小 long bmWidth,bmHeight; //图像的宽度,和高度 BITMAP bm; bitmap-> GetBitmap(&bm); bmWidth=bm.bmWidth; bmHeight=bm.bmHeight; dcMemory.SelectObject(bitmap); dc-> BitBlt(0,0,bmWidth,bmHeight,&dcMemory,0,0,SRCCOPY);//把内存中的图像复制到对话框DC中去 Invalidate(false); return true; }

在OnPaint()中调用该函数:[注意不要在OnInitDialog()中调用]

// 如果向对话框添加最小化按钮,则需要下面的代码 // 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序, // 这将由框架自动完成。 void CPictureDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); LoadPicture(); } else { LoadPicture();//调用绘图函数 CDialogEx::OnPaint(); } }

 

转载地址:http://mdvkx.baihongyu.com/

你可能感兴趣的文章
【转载】zabbix编译安装方法
查看>>
debian 主从复制
查看>>
LAMP的创建和简单应用
查看>>
php中数组的遍历方法及细节(笔记)
查看>>
普通用户/非root用户编译安装fastdfs
查看>>
html和css:块状元素和行内元素- - - - -总结!
查看>>
php面试题之四——Linux部分(高级部分)
查看>>
web项目长时间未操作,退出登录,跳转到登录页面
查看>>
shell脚本
查看>>
Linux基础之文件系统简介及其系统管理工具
查看>>
oracle之spool详细使用总结
查看>>
使用kubeadm部署kubernetes集群
查看>>
SPOOLing技巧(假脱机技巧)
查看>>
三.mail 接收权限 dovecot加密通信 php数据库 thunderbird
查看>>
华为日本设立研发中心,4大“X实验室”布局5G+物联网时代
查看>>
用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中...
查看>>
codis集群部署实战
查看>>
我的友情链接
查看>>
python基础知识3(列表和元组)
查看>>
windows 活动目录
查看>>