zoukankan      html  css  js  c++  java
  • CComboBox使用技巧

    CComboBox使用技巧:
    1. CComboBox风格
    CBS_AUTOHSCROLL //自动水平滚动条
    CBS_DISABLENOSCROLL //选中时始终显示滚动条
    CBS_DROPDOWN //下拉式
    CBS_DROPDOWNLIST //下拉列表
    CBS_HASSTRINGS //为字符串提供GetText()函数
    CBS_LOWERCASE //转换为小写
    CBS_NOINTEGRALHEIGHT //指定组合框由应用程序来指定大小的
    CBS_OEMCONVERT //OEM字符集转换
    CBS_OWNERDRAWFIXED //所有项目的高度是一样的
    CBS_OWNERDRAWVARIABLE //指定单一项目的高度
    CBS_SIMPLE //简单风格
    CBS_SORT //排序
    CBS_UPPERCASE //转换为大写

    1. 初始化数据
      1).在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。换行用ctrl+回车。

      2).在程序初始化时动态添加
      ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp);//strTemp为CString

    2. 删除指定行
      DeleteString( UINT nIndex ) //删除指定行

    4.插入指定位置
    InsertString( int nIndex, LPCTSTR lpszItem ) //将行插入到指定位置

    5.删除所有项
    ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent(); //消除ID为IDC_COMBO_CF现有所有内容
    6.查找指定字符串
    FindString( int nStartAfter, LPCTSTR lpszItem ) //可以在当前所有行中查找指定的字符串的位置,nStartAfter指明从那一行开始进行查找。
    SelectString( int nStartAfter, LPCTSTR lpszItem ) //可以选中包含指定字符串的行

    7.选择其中某行
    //(1)选中:
    int iPos=((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCurSel(); //当前选中的行。
    //(2)设置
    ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->SetCurSel(n) //设置第n行内容为显示的内容。

    8.获取总行数
    int GetCount()//得到当前列表框中行的数量

    9.取得Combo Box框内容

    ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetWindowText(strTemp); //将获取的值存放到CString类型变量strTemp中。

    //如果定义了关联的变量,例如m_combo,可以直接获取:m_combo->GetWindowText(strTemp);

    ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetLBText(n,strTemp); //其中n为从0开始的索引值

    10.获得焦点
    通常要判断控件是否获得了焦点,可以用GetFocus()函数
    例如:if(GetFocus()==GetDlgItem(IDC_EDIT_VALUE2))//判断焦点是否在编辑框IDC_EDIT_VALUE2内。
    但是combobox 的焦点不同,因为它是由edit和listbox两部分组成的,所以获得焦点要用GetParent():
    if ((GetFocus()->GetParent())==GetDlgItem(IDC_COMBO_CF))

    11.改变下拉框大小
    在设计界面里,点击一下Combo Box的下拉箭头,此时出现的调整框就是Combo Box的下拉调整框
    12.常用消息映射宏
    ON_CBN_DBLCLK 鼠标双击
    ON_CBN_DROPDOWN 列表框被弹出
    ON_CBN_KILLFOCUS / ON_CBN_SETFOCUS 在输入框失去/得到输入焦点时产生
    ON_CBN_SELCHANGE 列表框中选择的行发生改变
    ON_CBN_EDITUPDATE 输入框中内容被更新
    使用以上几种消息映射的方法为定义原型如:afx_msg void memberFxn( );的函数,并且定义形式如ON_Notification( id, memberFxn )的消息映射。
    如果在对话框中使用组合框,Class Wizard会自动列出相关的消息,并能自动产生消息映射代码。

  • 相关阅读:
    iOS 11: CORE ML—浅析
    Android 平台 Native 代码的崩溃捕获机制及实现
    H5直播避坑指南
    Mac系统升级至OS X Mavericks后Genymotion出现的问题及解决方法
    Android 4.4 KitKat终于支持录屏(Screen Recording)了!
    Android开发者资源大汇总
    用AndroidSDK中的Face Detector实现人脸识别
    [Android设计模式]Android退出应用程序终极方法
    ActionBarCompat 教程-实现Action Bar
    使用Roboguice依赖注入规划Android项目
  • 原文地址:https://www.cnblogs.com/fag888/p/5789104.html
Copyright © 2011-2022 走看看