• 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()

  • 相关阅读:
    CodeGen用户定义的扩展令牌
    CodeGen编写自定义表达式标记
    CodeGen CreateFile实用程序
    CodeGen融合核心关系循环扩展
    CodeGen融合核心扩展定制文件
    CodeGen API分析
    CodeGen字段循环Field Loop
    CodeGen概述
    算子扫描与递归核
    算子本质与数学函数
  • 原文地址:https://www.cnblogs.com/kk328/p/10264532.html
Copyright © 2020-2023  润新知