• 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会自动列出相关的消息,并能自动产生消息映射代码。

  • 相关阅读:
    清除某个数据库的所有数据库连接的存储过程
    IIS的Windows集成身份验证总结
    新项目的页面不要直接从PageBase继承
    安装Win2003 SP1遇到拒绝访问
    ASP.NET2.0站点跨服务器访问Sql Sever 2005 Reporting Service
    当CodeSmith不在时,续……
    Web讯雷导致IIS无法启动的问题
    Intro to eDiscovery in SharePoint, Exchange, and Lync 2013
    微软云平台
    团队开发博客
  • 原文地址:https://www.cnblogs.com/fag888/p/5789104.html
Copyright © 2020-2023  润新知