宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 4508|回复: 0

[三方工具] VC++ 6.0 常用控件使用方法介绍(控件变量类型为Control)

[复制链接]
  • TA的每日心情
    开心
    2024-12-9 18:45
  • 签到天数: 124 天

    [LV.7]常住居民III

    admin 发表于 2011-7-31 09:45:32 | 显示全部楼层 |阅读模式

    欢迎您注册加入!这里有您将更精采!

    您需要 登录 才可以下载或查看,没有账号?注册

    x
    除非特别说明,本文中所用控件变量类型为Control
    一般控件可用/不可用
    1. EnableWindow(TRUE);
    2. EnableWindow(FALSE);
    复制代码
    1、Static Text------------静态控件 --类CStatic
    取值/赋值(变量类型为Control)
    1. m_lbl.GetWindowText(string);
    2. m_lbl.SetWindowText(string);
    复制代码
    2、Edit Box---------------编辑控件 --类CEdit
    取值/赋值
    1. m_txt.GetWindowText(string);
    2. m_txt.SetWindowText(string);
    复制代码
    3、Check Box------------复选控件 --类CButton
    (1)设置选中/未选中
    1. m_chk.SetCheck(BST_CHECKED);   
    2. m_chk.SetCheck(BST_UNCHECKED);
    复制代码
    (2)判断是否选中
    1. int nCur = m_chk.GetCheck();
    复制代码
    nCur取值为 BST_CHECKED/BST_UNCHECKED。
    4、Radio Box------------单选控件 --类 CButton
    (1)默认选中第一项
    1. m_radio.SetCheck(BST_CHECKED);
    复制代码
    (2)选中组中任一项
    1. CWnd::CheckRadioButton
    2. void CheckRadioButton(int nIDFirstButton, int nIDLastButton, int nIDCheckButton);
    复制代码
    (3)判断哪一项被选中
    1. CWnd::GetCheckedRadioButton
    2. int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton);
    复制代码
    (4)控件变量类型为Value时,可通过给int型变量赋值0、1、2...选中第1、2、3...个选项。
    int型变量默认值为-1,是在构造函数中赋的值。
    当然也可通过判断int型变量的值,知道哪一个选项被选中。
    5、Combo Box-----------组合框控件 --类CComboBox
    (1)风格
    Simple-象List Box一样显示数据
    Dropdown-可以输入,也可以选择
    Drop List-只能选择
    (2)添加数据
    a.        属性对话框->Data->Enter listbox items,用Ctrl+Enter换行;
    b.        m_combo.AddString(string);
    c.        m_combo.InsertString(index,string);
    (3)显示数据
    设计页面,点击Combo Box Control右边的下拉箭头,显示的矩形框就是显示数据的区域。
    (4)设置当前选项
    m_combo.SetCurSel(项索引);
    (5)获取当前选项
    1. int nIndex = m_combo.GetCurSel();
    2. CString str;
    3. m_combo.GetLBText(nIndex, str);
    复制代码
    注:Combo Box Control会自动排序,数据显示顺序可能与预期不同,建议添加数据时用InsertString(索引,值)。
    6、List Box---------------列表框控件 --类CListBox
    (1)插入项
    1. m_list.AddString(string);
    复制代码
    (2)设置当前选择项
    m_list.SetCurSel(项索引);

    (3)获取当前选择项
    1. int nIndex = m_list.GetCurSel();
    2. m_list.GetText(nIndex, string);
    复制代码
    (4)删除一项
    m_list.DeleteString(项索引);
    (5)删除所有项
    1. m_list.ResetContent();
    复制代码
    (6)获取总项数
    m_list.GetCount()
    (7)List Box的选项前面加复选框(Check Box)
    a.风格
    声明时用类CCheckListBox代替CListBox,即CCheckListBox    m_list;而不是CListBox    m_list;
    属性对话框->Styles->Owner draw设为Fixed
    属性对话框->Styles->勾选Has strings
    b.设置选择
    1. void SetCheck(int nIndex, int nCheck);
    复制代码
    Parameters
    nIndex
    Index of the item whose check box is to be set.
    nCheck
    State of the check box: 0 for clear, 1 for checked, and 2 for indeterminate.
    c.获取选择
    1. int GetCheck(int nIndex);
    复制代码
    Parameters
    nIndex
    Index of the item whose check status is to be retrieved.
    Return Value
    Zero if the item is not checked, 1 if it is checked, and 2 if it is indeterminate.
    7、List Control----------列表框扩展控件 --类CListCtrl
    (1)样式:属性对话框框->Styles->Format有4,分别是Icon/Small Icon/List/Report;
    (2)Report格式设置扩展风格
    1. DWORD dwStyle = m_list.GetExtendedStyle();
    2. dwStyle |= LVS_EX_FULLROWSELECT;        // 选中某行使整行高亮(只适用与report风格的listctrl)
    3. dwStyle |= LVS_EX_GRIDLINES;            // 网格线(只适用与report风格的listctrl)
    4. m_list.SetExtendedStyle(dwStyle);
    复制代码
    (3)Report格式插入列
    1. m_list.InsertColumn(1, "列一", LVCFMT_RIGHT, 150);
    2. m_list.InsertColumn(2, "列二", LVCFMT_LEFT, 100);
    3. m_list.InsertColumn(3, "列三", LVCFMT_LEFT, 100);
    4. m_list.InsertColumn(4, "列四", LVCFMT_LEFT, 200);
    5. m_list.InsertColumn(5, "ID", LVCFMT_CENTER, 0);
    复制代码
    (4)Report格式插入一行数据
    1. int nIndex = m_list.GetItemCount();
    2. m_list.InsertItem(nIndex, s1);
    3. m_list.SetItemText(nIndex, 1, s2);
    4. m_list.SetItemText(nIndex, 2, s3);
    5. m_list.SetItemText(nIndex, 3, s4);
    6. m_list.SetItemText(nIndex, 4, s5);
    复制代码
    (5)Report格式删除所有行
    1. m_list.DeleteAllItems();
    复制代码
    (6)Report格式获取某行某列数据
    1. CString sID = m_list.GetItemText(行索引, 列索引);
    复制代码
    (7)Report格式删除选择行,多选时可用循环。
    1. POSITION pos = m_list.GetFirstSelectedItemPosition();
    2. if (pos != NULL)
    3. {
    4.        int nIndex = m_list.GetNextSelectedItem(pos);
    5.        m_list.DeleteItem(nIndex);
    6. }
    复制代码
    8、Date Time Picker----日期时间控件--类CDateTimeCtrl
    (1)样式:属性对话框框->Styles->Format有3,分别是Short Date/Long Date/Time,分别显示短日期(2009-03-12)/长日期(2009年3月12日)/时间(20:08:06),日期格式默认有一向下箭头,时间格式默认有一Spin Control;
    (2)可编程设置其显示格式,例如年4位,月、日、时、分、秒2位,
    1. CString formatStr= _T("yyyy-MM-dd");
    2. m_txtDate.SetFormat(formatStr);
    3. formatStr= _T("HH:mm:ss");
    4. m_txtTime.SetFormat(formatStr);
    复制代码
    (3)取值赋给CString
    1. m_txtDate.GetWindowText(sAddDate);
    2. m_txtTime.GetWindowText(sAddTime);
    复制代码
    9、Spin------------------旋转按钮控件 --类CSpinButtonCtrl
    (1)与Edit控件关联
    首先,排列控件的Tab键顺序,要让Spin Control的Tab Order紧跟着Edit Control(就是说,Spin Control的Tab Order是Edit Control的Tab Order加1);设置tab order 的方法是 Ctrl+d,然后用鼠标挨个点击,就是按TAB键时焦点在窗体上的移动顺序;
    然后,Spin Control属性对话框中勾选Auto buddy和Set buddy integer。
    (2)设置上下限
    1. m_spin.SetRange(1, 60);
    复制代码
    (3)设置当前值,可以不用给Edit控件赋值
    1. m_spin.SetPos(3);
    复制代码
    (4)获取当前值
    1. int nCur = m_spin.GetPos();
    复制代码
    10、Slider-----------------滑动条控件--类CSliderCtrl
    (1)设置上下限、最小滑动值
    1. m_slider.SetRange(5,100);
    2. m_slider.SetTicFreq(1);
    复制代码
    (2)设置/获取当前值
    1. m_slider.SetPos(nCur);
    2. int nCur = m_slider.GetPos();
    复制代码
    (3)背景色:重写OnCtlColor(),虽然不知道Slider属于nCtlColor的哪一类,但试验表明似乎是属于CTLCOLOR_STATIC。
    1. HBRUSH CDlgOptionVideo::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    2. {
    3.     HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    4.     // TODO: Change any attributes of the DC here
    5.     // 设置透明背景模式
    6.     pDC->SetBkMode(TRANSPARENT);
    7.    
    8.     // TODO: Return a different brush if the default is not desired
    9.     switch(nCtlColor)
    10.     {
    11.         // 设置背景刷子为空
    12.         case CTLCOLOR_STATIC:    // 静态控件
    13.             if(pWnd->GetDlgCtrlID() == IDC_SLIDER_TIME)
    14.                  return ::CreateSolidBrush(RGB(203, 228, 253));
    15.         case CTLCOLOR_DLG:        // 对话框
    16.             return (HBRUSH)::GetStockObject(HOLLOW_BRUSH);
    17.         default:
    18.             return hbr;
    19.     }
    20. }
    复制代码
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2024-12-22 13:11 , File On Powered by Discuz! X3.49

    快速回复 返回顶部 返回列表