windows控件理论学习
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控件理论学习的更多相关文章
- 在web中使用windows控件,实现摄像头功能
最近做的一个Web版的视频会议项目,需要在网页中播放来自远程摄像头采集的实时视频,我们已经有了播放远程实时视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,A ...
- 在Web中使用Windows控件
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 将Net控件转化为ActiveX控件 1GUID 2实现IObjectSafety接口 3程序集设定 制作安装程序 Web集 ...
- 向ArcGIS的ToolBarControl中添加任意的windows控件的方法
概要:在使用ArcEngine开发中,给ToolbarControl添加按钮形式的命令项相信大家都很熟悉了,因为网上的例子很多.但这种使用click调用功能的方式只能满足大部分用户在体验方面的需求,除 ...
- ArcGIS ElementLayer上放置Windows控件
ElementLayer是ArcGIS API for Silverlight/WPF中的一种图层类型,主要用来承载Silverlight/WPF中的UIElement对象(UIElement),使用 ...
- 在Web中如何使用Windows控件(ActiveX)[转]
最近做的一个Web项目,需要在网页中播放摄像头采集的实时视频,我们已经有了播放视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,ActiveX. 1.将.Ne ...
- Delphi对象变成Windows控件的前世今生(关键是设置句柄和回调函数)goodx
----------------------------------------------------------------------第一步,准备工作:预定义一个全局Win控件变量,以及一个精简 ...
- 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用
Dixon 原文 用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署 ...
- 关于 LDTP 操纵 windows 控件。
LDTP doc: https://ldtp.freedesktop.org/user-doc/ 对于 web 自动化,我们用 Selenium, 但是对于 windows 控件,我们可以使用 LD ...
- [修正] Berlin Firemonkey Windows 控件左方显示虚线问题
说明:在 Wndows 显示时,有时控件左方会显示一条虚线 适用:Berlin Firemonkey 修正方法: 请将源码 FMX.Platform.Win.pas 复制到自己的工程目录里,再进行修改 ...
随机推荐
- 通过crontab调度java -jar任务提示"nohup: failed to run command `java': No such file or directory"
通过crontab无法运行,提示如标题的信息: 但直接在终端控制台执行sh和java -jar都可以: 网上给的提示解决方法,在.sh文件开始上面加上 source /etc/profile 然后cr ...
- 存在多个 AJAX 任务
实现的效果: 这两个Ajax任务可同时实现,也可单独实现. 标准的函数: var xmlhttp; function loadXMLDoc(url,ufunc){ if(window.XMLHttpR ...
- Hive SQL 分类
题目: 请使用Hive SQL实现下面的题目. 下面是一张表名为user_buy_log的表,有三个字段,user(用户),grp(分组编号),time(购物时间). 需要将用户按照grp分组,对ti ...
- CAS server打包小白教程
如题,cas是耶鲁大学的一个开源的登录系统,功能齐全,受到很多企业的青睐. 耶鲁大学都不知道那你太out了,我告诉你吧!耶鲁大学就是山东一个椰子树长的很多的地方的大学,很牛逼. 很多新手程序员简历都喜 ...
- Gram 矩阵与向量到子空间的距离
设 $W$ 是 $n$ 维 Euclidean 空间 $V$ 的子空间, $\beta\in V$, 定义 $\beta$ 到 $W$ 的距离 $$\bex \rd (\beta,W)=|\bet ...
- Trie树的二三事QWQ
写在前面 Trie,又称字典树,是一种用于实现字符串快速检索的多叉树结构.Trie的每个结点都拥有若干字符指针,若在插入或检索字符串时扫描到一个字符c,就沿着当前节点的c这个字符指针,走向该指针指向的 ...
- LaTeX技巧892: Ubuntu 安装新版本TeXLive并更新
原文地址:http://www.latexstudio.net/archives/9788.html 摘要: 本文比较系统地介绍了在Ubuntu下的TeXLive的安装与配置测试过程,建议使用Ubun ...
- 推荐一款中国风React组件
最近看这个中国风的组件在掘金也火了一段时间,看了有几天了,也体验了下,感觉还不错,所以准备来安利下 项目地址:https://github.com/zhui-team/zhui 使用手册请参考:htt ...
- html5 - 地图
demo截图: demo链接 代码: <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- 阿里云ECS试用配置
1.首先从阿里云找到ECS购买入口(目前在弹性入口的弹出框中).进入ECS购买界面后,选择免费试用. 此处省略试用申请过程. 2.然后再到云市场中购买一个免费的镜像服务.此处为Centos 64位系统 ...