关闭

Windows编程基础--第13节 MFC之图片控件

标签: mfcwindows
1869人阅读 评论(0) 收藏 举报
分类:

这节学习两个控件:

图片控件: Picture Control

1. 新建项目

新建一个基于对话框项目“day15”,布局如下,自行处理:
这里写图片描述
拖动一个Picture Control控件到界面,其实Picture Control就是CStatic 类;

设置Picture Control的如下属性:

属性 修改值 解释
ID IDC_STATIC_IMG 控件ID
Type Bitmap 设置类型为bitmap位图类型

如图:这里写图片描述

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);
}

代码解释:

  1. 获取一个位图的句柄
    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);
    }
}

代码解释:

  1. 创建一个.bmp类型的文件打开对话框
  2. 若点击确定按钮,则将选择的.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

项目源码可以访问我的码云

>>>我的私人博客<<<

0
0
查看评论

Windows编程基础--第12节 MFC之树控件CTreeCtrl

树形控件(Tree Control):用来显示一系列项目的层次关系,最典型的例子是显示磁盘上的文件与文件夹。如果有子项目的话,单击树形控件中的项目可以展开或者收缩其子项目。MFC提供了CTreeCtrl类进行支持。 树控件在windows程序中使用相对也是比较多的控件,例如windows资源管理器左...
  • qq_25549309
  • qq_25549309
  • 2017-10-30 20:24
  • 2053

Windows编程基础--第3节 初探MFC

前言 win32程序属于早期windows软件,已经逐渐被淘汰,但它的设计模式和方法大部分都被MFC所继承,并且MFC开始使用C++语言进行开发,借助C++比C语言的强大特性,使得开发windws程序更加简便、高效,更加多元化。 创建第一个MFC程序(操作系统:win10 64位 IDE:vc+...
  • qq_25549309
  • qq_25549309
  • 2017-10-19 22:17
  • 1882

Windows编程基础--第14节 MFC之文件对话框CFileDialog

第14节 MFC之文件对话框CFileDialog今天我们学习两个打开文件对话框、保存文件对话框,应用程序难免需要加载文件,或者打开配置文件等,这就用到打开或者保存对话框,例如windows文本编辑器中保存对话框就属于其中一种: 1. 新建项目新建一个基于对话框项目“day16”,布局如下,自行处...
  • qq_25549309
  • qq_25549309
  • 2017-11-01 20:32
  • 1817

学前班 第3节 怎么看原理图之内存类接口

3.类似内存的接口 : ram-like 3.1 NOR, SDRAM, 网卡 3.2 不同位宽外设的接线、访问过程 3.3 怎么确定访问地址、设置内存控制器 问1:地址线、数据线上接有众多设备,怎样做到只访问其中一个而避免其余的影响? 答1:每一个芯片都有单后的片选引脚,访问它之前先...
  • lwbeyond
  • lwbeyond
  • 2015-09-04 19:18
  • 824

Windows编程基础--第19节 MFC之自定义消息

Windows编程基础–第19节 MFC之自定义消息windows程序中最重要的就是消息机制,前面几节我们都是使用Windows系统设定好的消息进行编程,今天我们来使用自定义的消息来看看MFC中消息的传递过程; MFC中自定义消息有两种方法: #define WM_MY_DEFINED_...
  • qq_25549309
  • qq_25549309
  • 2017-11-08 21:26
  • 164

VC知识库视频大讲堂VIP年会员制套餐【价值4000元】

第1章 《STL实用入门教程》 第1节《STL实用入门教程》前言第2节《STL实用入门教程》第一讲第3节《STL实用入门教程》第二讲第4节《STL实用入门教程》第三讲第5节《STL实用入门教程》第四讲第6节《STL实用入门教程》第五讲第7节《STL实用入门教程》第六讲第8节《STL实用入门教程》...
  • buxiong1984
  • buxiong1984
  • 2017-03-25 12:53
  • 734

Windows编程基础--第4节 MFC消息映射机制

对于MFC程序最重要的响应机制就是消息映射机制,这节我们就来一起尝试一下MFC的消息映射机制。 (操作系统:win10 64位 IDE:vc++ 6.0) 1、新建一个MFC对话框项目,参见上节, 2、编译代码运行,效果图如下: 3、现在我们删除对话框上的《确定》和《取消》按钮,如图:...
  • qq_25549309
  • qq_25549309
  • 2017-10-20 22:22
  • 1926

windows基础编程 -- 资源

前言VC环境可以通过资源脚本文件(.rc)给当前程序添加资源,这些资源包括: Accelerator(加速键),Bitmap(位图),Cursor(光标),Dialog(对话框),HTML(网页脚本),Icon(图标),Menu(菜单),StringTable(字符表),ToolBar(工具栏),V...
  • diletrich
  • diletrich
  • 2016-02-18 23:17
  • 340

Windows编程基础学习笔记

Windows编程概述     Windows系统是一个消息驱动的操作系统,每一个事件的发生都会产生一个消息,我们通过消息来知道发生了什么事件。    Windows编程是在实现程序算法的基础上进行窗口编程。程序员可以直接调用Windows API进...
  • lindagod
  • lindagod
  • 2015-02-17 08:28
  • 3115

Windows编程中的子窗口控件设计

(注:本文转载自http://www.cnblogs.com/duzouzhe/archive/2010/03/12/1683922.html) 取父窗口的窗口句柄: hwndParent = GetParent (hwnd) ; 发送消息: SendMessage (hwndParent, me...
  • Loving_Forever_
  • Loving_Forever_
  • 2016-05-16 20:27
  • 2003
    个人资料
    • 访问:40757次
    • 积分:698
    • 等级:
    • 排名:千里之外
    • 原创:28篇
    • 转载:6篇
    • 译文:0篇
    • 评论:1条
    文章分类