mmp快考试了还在浪

一、对话框编辑器创建控件

1、使用new在堆上创建,系统结束时我们需要使用delete去销毁控件

2、对话框编辑器控件,程序结束,自动销毁

二、控件类的基类

CWnd类和消息映射隐藏在Wndproc()函数,含有windows消息时,会自动到

onmessage函数中,然后通过Onmessage函数的重写来实现对特殊消息的处理

使用CWnd类时,可以通过增加成员函数来实现对相关数据的存储,另外还可以实现啊成员函数和消息的映射

创建CWnd子控件分为两步:

调用构造函数创建CWnd对象

create函数可以用来创建对话框,最后附加到CWnd中

三、控件的消息和处理

发生消息处理事件的同时,父对话框会产生相应的改变,因此我们在做相应的添加

相应的消息的时候,都要对父类对话框做相应的处理,通常格式如下:

ON_Notification(id,memberfunction) //消息映射

按钮控件

按钮控件有两个状态:按下和弹起

按钮控件类Cbutton(Cbitmapbutton处理图像按钮)

按钮事件的属性和消息

ON_BN_CLICKED,ON_BN_DOUBLECLICKED,用户双击按钮控件,发送给父窗体相应

事件

GetState(),SetState(),GetCheck(),SetCheck(),获取相应的窗口

四、静态控件和编辑控件

1、静态控件类static

通常不接受输入和输出,使用SS_NOTIFY除外,显示鼠标,字符串,位图等

2、Cedit编辑类控件

使用GetLine()、SetSel()、GetSel()、ReplaceSel()成员函数来获取和设置控件部分的文本

常用函数

ON_EN_CHANGE、ON_EN_ERRSPACE、ON_EN_HSCROLL、ON_EN_KILLFOCUS、ON_EN_MAXTEXT、ON_EN_SETFOCUS、ON_EN_UPDATE、ON_EN_VSCROLL消息

单选框和复选框控件

3、单选框控件

(1)、将各个单选框按钮的TAB键顺序按照分组设置,同一组的单选框控件的tab键组合在一起。

(2)、选择每个分组的第一个单选按钮的group属性和Tab stop以及Auto属性。

(3)、其余的单选框选择Tab stop和Auto属性即可

4、单选框控件的消息和参考上面控件的消息

复选框控件的创建,在创建时和一般相同但是我们需要选择复选框,事件参考上述按钮事件的使用

五、列表框控件和组合框控件

1、列表框显示数据的列表

CListBox

使用向导添加控件对象变量后,向导会在对话框类的DoDataExchange()函数中使用DDX_Control()函数与成员变量连接起来。

2、常用消息

ON_LBN_DBLCLK、ON_LBN_ERRSPACE、ON_LBN_SELCANCEL、ON_LBN_KILLFOCUS、ON_LBN_CHANGE、ON_LBN_SETFOCUS、ON_LBN_CHARTOITEM、ON_LBN_VKEYTOLIEM消息

组合控件不仅可以处理CWnd的消息,另外还可以处理这些消息

ON_CBN_DBLCLK、ON_CBN_CLOSEUP、ON_CBN_DROPDOWN、ON_CBN_KILLFOCUS、ON_CBN_EDITCHANGE、ON_CBN_EDITUPDATE、ON_CBN_SELCHANGE、ON_CBN_SELENDCANCEL、ON_CBN_SELENDOK消息

六、微调控件、滑块控件和进度条控件

1、微调控件提供箭头,单击箭头可以进行调整,要使得编辑控件和微调控件一致需要执行下面的操作:

(1)、将编辑控件的Tab顺序值和微调控件的值相邻,并且编辑框控件的Tab键顺序值大

(2)、取消微调控件的Tab属性

(3)、设置微调控件的属性

2、划款控件位置等于范围加一,进度条控件方法参照其他控件,但是选择是我们需要选择进度条控件;主要方法如下:

SetRange进度条控件的范围值

SetStep进度条控件的增量间隔值

SetPos进度条控件的当前位置值

SetPos设置当前位置值

GetPos获取进度条的当前位置值

七、列表视图控件和树形视图控件

1、列表视图支持Icon、SmallIcon、List、Report等视图

列表视图控件类CLsitCtrl

方法:CListCtrl::GetItem方法、CListCtrl::InsertItem方法、CListCtrl::FindItem方法。

列表视图控件的通知消息

要对项进行此列内容的排序,应该在处理函数中进行处理、在视图类或对话框类处理WM_NOTIFY消息对应的处理含糊ONChildNotify,加入switch语句来处理不同消息。

2、树形视图控件的创建,参考上述控件的创建

3、CTreeCtrl类实现树形视图控件的功能,WM_NOTIFY消息。

八、ActiveX控件,作用提供持久、连接点和主机标准接口的COM组件,可以在控件包含器中处理控件的协议,交换消息和处理事件。

使用

在对话框资源编辑器,单击控件|属性菜单项

选择ALL选项卡,或者选择指定选项卡,在属性中输入初始值

属性,方法,类型库

包装类的使用

控件包装在COleDispatchDriver类

使用GetDlgItem函数需要包装类,返回值必须转换为控件类型。

CDBLIsT* pDBList=0

pDBList=static_cast<CDBList*>(GetDlgItem(IDC_DBLISt));

ActiveX帮助信息1控件本身信息2OLE/COM帮助信息

使用:1控件和组件库插入控件2 对话框编辑框插入控件

MFC需要在InitInstance()添加以下代码AfxEnableControlContainer()

windows控件理论学习的更多相关文章

  1. 在web中使用windows控件,实现摄像头功能

    最近做的一个Web版的视频会议项目,需要在网页中播放来自远程摄像头采集的实时视频,我们已经有了播放远程实时视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,A ...

  2. 在Web中使用Windows控件

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+] 将Net控件转化为ActiveX控件 1GUID 2实现IObjectSafety接口 3程序集设定 制作安装程序 Web集 ...

  3. 向ArcGIS的ToolBarControl中添加任意的windows控件的方法

    概要:在使用ArcEngine开发中,给ToolbarControl添加按钮形式的命令项相信大家都很熟悉了,因为网上的例子很多.但这种使用click调用功能的方式只能满足大部分用户在体验方面的需求,除 ...

  4. ArcGIS ElementLayer上放置Windows控件

    ElementLayer是ArcGIS API for Silverlight/WPF中的一种图层类型,主要用来承载Silverlight/WPF中的UIElement对象(UIElement),使用 ...

  5. 在Web中如何使用Windows控件(ActiveX)[转]

    最近做的一个Web项目,需要在网页中播放摄像头采集的实时视频,我们已经有了播放视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,ActiveX. 1.将.Ne ...

  6. Delphi对象变成Windows控件的前世今生(关键是设置句柄和回调函数)goodx

    ----------------------------------------------------------------------第一步,准备工作:预定义一个全局Win控件变量,以及一个精简 ...

  7. 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用

    Dixon 原文  用ArcGIS Engine.VS .NET和Windows控件开发GIS应用     此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署 ...

  8. 关于 LDTP 操纵 windows 控件。

    LDTP doc:  https://ldtp.freedesktop.org/user-doc/ 对于 web 自动化,我们用 Selenium, 但是对于 windows 控件,我们可以使用 LD ...

  9. [修正] Berlin Firemonkey Windows 控件左方显示虚线问题

    说明:在 Wndows 显示时,有时控件左方会显示一条虚线 适用:Berlin Firemonkey 修正方法: 请将源码 FMX.Platform.Win.pas 复制到自己的工程目录里,再进行修改 ...

随机推荐

  1. Codeforces 1077F1 Pictures with Kittens (easy version)(DP)

    题目链接:Pictures with Kittens (easy version) 题意:给定n长度的数字序列ai,求从中选出x个满足任意k长度区间都至少有一个被选到的最大和. 题解:$dp[i][j ...

  2. CF1120D(神奇的构造+最小生成树)

    考虑把树展开,单独把叶子节点拿出来 于是可以把控制点\(x\)的,抽象成是在它叶子节点间连权值为\(c_x\)的边 显然只用在\(x\)子树的最左边的叶子节点和最右边的叶子节点的下一个节点连边(最后一 ...

  3. CSS伪类整理笔记

    0 伪元素 虚拟的一个元素,用于向已有的元素添加特殊效果,可用标签元素实现该效果. css3中规定:伪元素的由两个冒号::开头,然后是伪元素的名称.用两个冒号::是为了区别伪类和伪元素(CSS2中并没 ...

  4. shell 基础(二)变量

    1. shell变量的定义 1)Shell 支持以下三种定义变量的方式: variable=value variable='value' variable="value" 特点 1 ...

  5. java的jdk

    https://blog.fondme.cn/apidoc/jdk-1.8-baidu/

  6. 使用idea搭建maven项目

    前言---2018-11-24 博主最近呀,也是一直在看书,但是呢有许多小伙伴和博主反应,在eclipse都会搭建maven项目,但是呢到了idea就不会了,于是了博主就起了个早床写一遍博客咯.希望对 ...

  7. 剑指Offer_编程题_25

    题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否 ...

  8. SNMP学习——v3 VACM

    目录: ☆ SNMPv3视图访问控制模型    ☆ SNMPv3报文格式    ☆ VACM参数    ☆ Context Table    ☆ Security To Group Table     ...

  9. 类型和原生函数及类型转换(二:终结js类型判断)

    typeof instanceof isArray() Object.prototype.toString.call() DOM对象与DOM集合对象的类型判断 一.typeof typeof是一个一元 ...

  10. 深入学习CSS外边距margin(重叠效果,margin传递效果,margin:auto实现块级元素水平垂直居中效果)

    前言 margin是盒模型几个属性中一个非常特殊的属性.简单举几个例子:只有margin不显示当前元素背景,只有margin可以设置为负值,margin和宽高支持auto,以及margin具有非常奇怪 ...