Windows编程基础--第13节 MFC之图片控件
来源:互联网 发布:东北师范大学网络教育 编辑:程序博客网 时间:2024/05/29 16:08
这节学习两个控件:
图片控件: Picture Control
1. 新建项目
新建一个基于对话框项目“day15”,布局如下,自行处理:
拖动一个Picture Control控件到界面,其实Picture Control就是CStatic 类;
设置Picture Control的如下属性:
如图:
2.添加Bitmap 位图资源
自行下载几张.bmp位图,拷贝到项目的res文件下,然后切换到资源视图,添加Bitmap 资源,如图所示:
上传完成之后可以看到已经有三个Bitmap 位图的ID;
3.显示出位图资源
单击Picture Control控件,在属性中找到Image属性,在下拉框中选择我们刚才添加的位图ID就可以成功显示图片了,如图:
4.动态控制显示图片
在界面上添加一个按钮,我么通过按钮来切换界面图片显示:
接下来我们添加Picture Control控件的变量m_image,如图:
我们来编辑“切换按钮”的点击方法:
void Cday15Dlg::OnBnClickedButtonChange(){ // TODO: 在此添加控件通知处理程序代码 HBITMAP phBmp = (HBITMAP)LoadImage(NULL,_T(".\\res\\20171031100114614.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE); m_image.SetBitmap(phBmp);}
代码解释:
- 获取一个位图的句柄
2.将其设置到Picture Control控件
效果图:
5.配合CFileDialog 类来选择显示图片
我们来编辑“切换按钮”的点击方法:
void Cday15Dlg::OnBnClickedButtonChange(){ // TODO: 在此添加控件通知处理程序代码 CFileDialog dlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST,_T("*.bmp|*.bmp"),this); if (dlg.DoModal() == IDOK) { HBITMAP phBmp = (HBITMAP)LoadImage(NULL,dlg.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE); m_image.SetBitmap(phBmp); }}
代码解释:
- 创建一个.bmp类型的文件打开对话框
- 若点击确定按钮,则将选择的.bmp文件显示出来;
效果图:
附Picture Control控件常见属性及方法:
一、图片控件属性
Picture Control 属性: Type:Frame //框架 Type:Etched Horz水平蚀刻线条 Type:Etched
Vert垂真蚀刻线条 Type:Rectangle实心矩形 Type:Bitmap位图 Type:Icon 图标
Type:Enhanced Metafile 增强图元 支持wmf格式图片 Type:Owner Draw 自绘图 Color:颜色
Black:黑
Gray:灰色
White:白色
Etched:蚀刻
二、Picture Control 控件类
CStatic:: SetBitmap Specifies a bitmap to be displayed in the static
control. GetBitmap Retrieves the handle of the bitmap previously set
with SetBitmap.SetIcon Specifies an icon to be displayed in the static control.
GetIcon Retrieves the handle of the icon previously set with SetIcon.SetCursor Specifies a cursor image to be displayed in the static
control. GetCursor Retrieves the handle of the cursor image previously
set with SetCursor.SetEnhMetaFile Specifies an enhanced metafile to be displayed in the
static control. GetEnhMetaFile Retrieves the handle of the enhanced
metafile previously set with SetEnhMetaFile
项目源码可以访问我的码云
>>>我的私人博客<<<
- Windows编程基础--第13节 MFC之图片控件
- Windows编程基础--第11节 MFC之列表控件CListCtrl
- Windows编程基础--第12节 MFC之树控件CTreeCtrl
- Windows编程基础--第18节 MFC之窗体操作
- Windows编程基础--第19节 MFC之自定义消息
- Windows编程基础--第8节 MFC对话框控件访问的七种方法(上)
- Windows编程基础--第9节 MFC对话框控件访问的七种方法(下)
- Windows编程基础--第14节 MFC之文件对话框CFileDialog
- Windows编程基础--第15节 MFC之复选框及单选按钮
- Windows编程基础--第16节 MFC之SendMessage和PostMessage
- Windows编程基础--第17节 MFC之状态栏(CStatusBar)
- Windows编程基础--第3节 初探MFC
- Windows编程基础--第4节 MFC消息映射机制
- Windows编程基础--第5节 MFC对话框程序
- Windows编程基础--第10节 MFC菜单
- Windows编程基础--第6节 VC++6.0控件说明
- windows编程之MFC
- VS.NET windows编程基础之ListBox控件的使用
- FreeRTOS的队列发送源码解析
- java 算法的精髓
- 结合redis设计与实现的redis源码学习-8.1-object.c(对象实现)
- 【BZOJ1003】物流运输(动态规划,最短路)
- 性能监视器perfmon
- Windows编程基础--第13节 MFC之图片控件
- 【java学习】数据库的连接与使用
- Vs2013打开项目时,一直处理等待状态,并显示“Microsoft Visual Studio正忙”的提示窗,处理方法
- 三种方法实现斐波那契数列
- 神经网络使用心得
- poj 1988 Cube Stacking(加权并查集 )
- Python编程:从入门到实践的动手试一试答案(第八章)
- hdu 4803B
- 矩阵链相乘--动态规划