MFC学习笔记--按钮、列表框、对话框控件

按钮类CButton
按钮是一个矩形窗口,通常包含一个标题用来说明按钮的作用。CButton按钮控件类是从CWnd继承的。CObject-->CCmdTartget-->CWnd-->CButton.
按钮控件主要有命令按钮Button、单选按钮Radio Button 和复选框Check Box等。
    命令按钮Button            用来响应用户的鼠标点击操作;
    单选按钮Radio Button    由多个单选按钮组成一组,有选中和未选中两种状态,一组单选按钮是互斥的;
    复选框Check Box            一般也有选中和未选中两种状态;
8.5.2 按钮类的主要消息和方法
按钮类控件向父窗口发送的常用通知消息主要是单击消息BN_CLICKED和双击消息BN_DOUBLECLICKED;
CButton类的主要方法:
    CheckDlgButton()        设置按钮的状态;
    IsDlgButtonChecked()    返回指定复选框或单选按钮的状态
    CheckRadioButton()        选择组中的一个单选按钮;
    GetCheckedRadioButton()    获得一组单选按钮中被选中按钮的ID
    
8.6 列表框类CListBox
列表框类CListBox给出了选项清单,用户可以用鼠标选择其中一个或多个条目,但是不能直接编辑列表框的数据。列表框可以自动添加滚动条以查阅所有选项。
列表框可分为单选列表框和多选列表框。CListBox按钮控件类是从CWnd继承的。CObject-->CCmdTartget-->CWnd-->CListBox.
8.6.1 CListBox类的方法:
1)通用方法
    GetCount()            获得列表框中列表项数目
    GetSel()            确定列表框中的选择状态
    SetSel()            选择或取消选择指定的列表项
    GetText()            把列表框中的字符串复制到缓冲区
    GetTextLen()        返回列表框字符串的长度(按字节)
    ...
2)单选列表框的方法
列表框的默认模式是单选项模式;所有的通用方法均适用于单选项列表框。
只有两个类方法专门处理单选项列表框:
    GetCurSel()            获得当前选择列表框的下标(基于0)
    SetCurSel()            选择列表框字符串
3)多选列表框的方法
多选项列表框扩展了标准单项选择列表框的能力,可以解决在一个列表框中选择多项带来的复杂性。
    GetAnchorIndex()    获得多项选择列表框中当前定位项的下标
    ...
4)特殊字符串方法
适用于单选和多选两种模式的列表框,这些方法处理列表框中的字符串项。
    AddString()            在列表框中加入一个字符串
    InsertString()        在列表框指定下标处插入一字符串
    ...
8.6.2 创建和初始化列表框对象
两种创建方法:
    a.利用工具箱的列表框控件直接创建,然后添加控件变量使用;
    b.通过CListBox类的Create成员函数创建;
设计过程中,同一组单选按钮必须一个接一个的放进对话框中,中间不能插入其他的控件;(原因:VS按照放入对话框中的先后顺序,给每个控件赋一个ID值,所以控件的ID是连续的)
对于成组的单选按钮,只在每组的第一个按钮的属性中选中Group设置(group属性的控件之间的控件为一组)
应用程序的代码编程部分:
    a.给各个控件连接变量;
    b.与有关按钮控件的连接方法;
    c.方法的实现;
    d.初始化单选按钮;
    
8.7 对话框通用控件
大部分控件都是在对话框中使用的,无论是基于对话框的应用程序还是Doc/View结构的应用程序,控件通常是放在对话框中的。包括:
    1.Picture控件;        2.Slider控件;        3.Progress控件;        4.Spin控件
8.7.1 Picture控件
    (1)分隔线
    将Picture控件拖放在对话框中,[Type]属性选择“Frame",[Color]属性选择"Etched”,将控件拖到最细,此时Picture控件就像一条分隔线。
    (2)图片
    将[Type]属性设置为"Icon"或者"Bitmap",设置[Image]属性为相应的资源ID,显示图标或者位图;在资源中导入一位图,命名为IDB_BITMAO_DOT;
    为Picture控件添加变量CStatic m_picture1;在对话框中增加“开始”按钮,添加“事件处理程序”
8.7.2 Slider控件的使用
滑块控件可使用户通过拖动滑块快速获得指定的数据。当用户滑动滑块时,控件将发送消息来指示变化。滑块控件适用于选择一系列离散值或一段连续范围。
8.7.3 Progress控件
进度控件用来指示长时间操作的进展程度。包括从左到右使用系统高亮颜色显示渐进过程的矩形。
MFC中表示进度控制的是CProgressCtrl类。进度条有一个范围和当前位置,范围表示整个操作的持续时间,当前位置表示当前进行的位置,进度条根据当前位置来判断进行的百分比,并显示进度。
CProgressCtrl类常用成员:
    CProgressCtrl         构造CProgressCtrl对象
    Create                创造进度条对象;
    SetPos                设置当前位置;
    GetPos                获取当前位置;
    SetRange            设置取值范围;
    SetStep                设置步长;
    Steplt                前进一步;
        添加一个Progress控件,保持默认ID,设置Smooth属性。在旁边添加一个按钮,设置ID为“IDC_BUTTON_START”,Cation为开始。
        在OnInitDialog中添加代码:...;为“计时”按钮添加点击事件实现代码:...
        添加WM_TIMER消息:
            a.在类视图中选择相应的类Dlg;
            b.在属性对话框中选消息按钮;
            c.下拉找到WM_TIMER;
            d.右边下拉列表框选择添加
        在COtherCtrlDlg中添加对WM_TIMER消息的响应函数:...
8.7.4 Spin控件
Spin按钮控件提供了一对箭头,用户通过点击箭头可以微调该控件所表示的数值。
标识Spin控件的是CSpinButtonCtrl类,Spin控件通常和taborder位于它之前的控件成对使用。通过CSpinButtonCtrl的GetBuddy方法可获得与之配对的控件。
在对话框中拖放一个Edit控件,设为只读,然后拖放一个Spin控件紧挨着刚才的Edit控件,两个控件的ID都使用默认值,设置Spin控件的[Allignment]属性为Right,选中Auto buddy属性。
在对话框中添加WM_VSCROLL消息(SPIN控件上下滚动消息)的响应;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值