精华内容
下载资源
问答
  • 组合框控件

    2019-10-06 20:14:09
    组合框控件对应的类是CComboBox,其常用的成员函数如下: AddString():在列表框的尾部添加一个字符串选项 InsertString():根据参数提供的位置,从列表框中插入一个字符串选项 ResetContent():删除列表框中的所有选项...

    组合框控件对应的类是CComboBox,其常用的成员函数如下:

    AddString():在列表框的尾部添加一个字符串选项

    InsertString():根据参数提供的位置,从列表框中插入一个字符串选项

    ResetContent():删除列表框中的所有选项

    DeleteString():从列表框中删除一个字符串选项

    GetCount():获取组合框的列表框中选项的数目

    SetCurSel():在列表框中选中一个选项

    GetCurSel():获取被选中的选项的索引

    SetEditSel():设置组合框编辑控件中当前选择的首尾字符的位置

    GetEditSel():获取组合框中编辑框中当前选择的首尾字符的位置

    Undo()/Clear()/Copy()/Cut()/Paste():组合框编辑框部分的剪切板操作

    SetItemData()/GetItemData():设置/获取与组合框的一个列表框选项相关联的32位整数值

    (1)动态创建

    首先在主对话框类中定义一个CComboBox类型的成员

    1 class CComboBoxDlg : public CDialogEx
    2 {
    3     //省略
    4     CComboBox m_ComboBox;
    5     //省略
    6 };    

    接着在主对话框的初始化函数中动态创建一个组合框控件

    1 BOOL CComboBoxDlg::OnInitDialog()
    2 {
    3     //省略  
    4     m_ComboBox.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST,
    5         CRect(10,10,200,100),this,1);
    6     //省略  
    7 }

    效果图:

    (2)静态创建

    直接往对话框上面拖拽不在赘述

    转载于:https://www.cnblogs.com/DebugBin/p/4365841.html

    展开全文
  • MFC编程之组合框控件

    2018-05-04 15:46:35
    组合框控件简介 组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框。下面讲讲它们的区别。 简易组合框中的列表框...

    什么是组合框? 在这里我做了一个例程,选择不同的边缘会又不一样的值,并且能修改和保存。 下面是效果图。
    这里写图片描述
    这里写图片描述

    组合框控件简介

    组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框。下面讲讲它们的区别。

    简易组合框中的列表框是一直显示的。

    下拉式组合框默认不显示列表框,只有在点击了编辑框右侧的下拉箭头才会弹出列表框。

    下拉列表式组合框的编辑框是不能编辑的,只能由用户在下拉列表框中选择了某项后,在编辑框中显示其文本。

    经过上面的介绍,大家应该知道,最常用的当属下拉式组合框和下拉列表式组合框了,它们在很多时候能使程序看起来更专业,更简洁,让用户在进行选择操作时更方便。

    组合框被操作时会向父窗口发送通知消息,这些通知消息及其含义如下:

    CBN_CLOSEUP:组合框的列表框组件被关闭,简易组合框不会发送该通知消息
    CBN_DBLCLK:用户在某列表项上双击鼠标,只有简易组合框才会发送该通知消息
    CBN_DROPDOWN:组合框的列表框组件下拉,简易式组合框不会发送该通知消息
    CBN_EDITUPDATE:在编辑框准备显示改变了的正文时发送该消息,下拉列表式组合框不会发送该消息
    CBN_EDITCHANGE:编辑框的内容被用户改变了,与CBN_EDITUPDATE不同,该消息是在编辑框显示的正文被刷新后才发出的,下拉列表式组合框不会发送该消息
    CBN_ERRSPACE:组合框无法申请足够的内存来容纳列表项
    CBN_SELENDCANCEL:表明用户的选择应该取消,当用户在列表框中选择了一项,然后又在组合框控件外单击鼠标时就会导致该消息的发送
    CBN_SELENDOK:用户选择了一项,然后按了回车键或单击了下滚箭头,该消息表明用户确认了自己所作的选择
    CBN_KILLFOCUS:组合框失去了输入焦点
    CBN_SELCHANGE:用户通过单击或移动箭头键改变了列表的选择
    CBN_SETFOCUS:组合框获得了输入焦点

    组合框控件的创建

    MFC将组合框控件的所有操作都封装到了CComboBox类中。

    我们在对话框中加入组合框时,可以往对话框模板中拖入Combo Box控件,而后添加CComboBox类型的控件变量使用,但如果我们想在程序中动态创建的话,就要使用CComboBox类的成员函数Create了。Create函数的原型如下:

    virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID
    );

    大家可以看出,CComboBox类的Create成员函数同前面几个控件类的Create成员函数非常类似,dwStyle指定组合框控件的风格,rect为列表框弹出后组合框的位置和尺寸,pParentWnd是指向父窗口的指针,不能为NULL,nID指定组合框控件的ID。最后还是重点讲讲dwStyle参数。组合框控件的风格包括以下几种,并给出了相应说明:

       CBS_AUTOHSCROLL:使编辑框组件具有水平滚动的风格
       CBS_DISABLENOSCROLL:使列表框在不需要滚动时显示一个禁止的垂直滚动条
       CBS_DROPDOWN:指定一个下拉式组合框
       CBS_DROPDOWNLIST:指定一个下拉列表式组合框
       CBS_HASSTRINGS:指定一个含有字符串的自绘式组合框
       CBS_LOWERCASE:将编辑框和列表框中的所有文本都自动转换为小写字符
       CBS_NOINTEGRALHEIGHT:组合框的尺寸由应用程序而不是Windows 指定,通常,由Windows指定尺寸会使列表项的某些部分隐藏起来
       CBS_OEMCONVERT:使编辑框组件中的正文可以在ANSI 字符集和OEM字符集之间相互转换。这在编辑框中包含文件名时是很有用的
       CBS_OWNERDRAWFIXED:指定自绘式组合框,即由父窗口负责绘制列表框的内容,并且列表项有相同的高度
       CBS_OWNERDRAWVARIABLE:指定自绘式组合框,并且列表项有不同的高度
       CBS_SIIMPLE:指定一个简易组合框
       CBS_SORT:自动对列表框组件中的项进行排序
       CBS_UPPERCASE:将编辑框和列表框中的所有文本都自动转换为大写字符
    
       dwStyle参数可以是以上风格的组合。跟其他控件一样,创建时一般也还要指定WS_CHILD、WS_VISIBLE、WS_TABSTOP和WS_VSCROLL等风格。
    
       在对话框模板中直接添加组合框控件时,其属性页中的属性包含了以上风格,例如属性Uppercase设为True就相当于指定了CBS_UPPERCASE风格。
    
       CComboBox类的主要成员函数
    

    因为组合框是由编辑框和列表框组合而成的,所以组合框的操作和编辑框与列表框的操作有很多相似之处,同样的,CComboBox类的成员函数也和CEdit类与CListBox类的成员函数有很多相似之处,不但功能相似,甚至函数名和参数也很相似。下面大概讲解下CComboBox类的主要成员函数,更详细的内容可以参见MSDN。

    int GetCount( ) const;
    获取组合框控件的列表框中列表项的数量。

    int GetCurSel( ) const;
    获取组合框控件的列表框中选中项的索引,如果没有选中任何项,该函数返回CB_ERR。

    int SetCurSel(int nSelect);
    在组合框控件的列表框中选择某项。nSelect参数指定了要选择的列表项的索引,如果为-1则列表框中当前选择项被取消选中,编辑框也被清空。

    DWORD GetEditSel( ) const;
    获取组合框控件的编辑框中当前选择范围的起始和终止字符的位置。该函数返回一个32位数,低16位存放起始位置,高16位存放选择范围后第一个非选择字符的位置。如果该函数用于下拉列表式组合框时,会返回CB_ERR。

    BOOL SetEditSel(int nStartChar,int nEndChar);
    用于在组合框控件的编辑框中选择字符。nStartChar参数指定起始位置,nEndChar参数指定终止位置。

    DWORD_PTR GetItemData(int nIndex) const;
    获取组合框中指定项所关联的32位数据。nIndex参数指定组合框控件的列表框某项的索引(从0开始)。

    int SetItemData(int nIndex,DWORD_PTR dwItemData);
    为某个指定的组合框列表项设置一个关联的32位数。nIndex参数指定要进行设置的列表项索引。dwItemData参数指定要关联的新值。

    void GetLBText(int nIndex,CString& rString) const;
    从组合框控件的列表框中获取某项的字符串。nIndex参数指定要获取字符串的列表项的索引,CString参数用于接收取到的字符串。

    int GetLBTextLen(int nIndex) const;
    获取组合框控件的列表框中某项的字符串长度。nIndex参数指定要获取字符串长度的列表项的索引。

    int GetTopIndex( ) const;
    获取组合框控件的列表框中第一个可见项的索引。

    int SetTopIndex(int nIndex);
    将组合框控件的列表框中某个指定项设置为可见的。nIndex参数指定了该列表项的索引。该函数成功则返回0,有错误发生则返回CB_ERR。

    BOOL LimitText(int nMaxChars);
    用于限制用户在组合框控件的编辑框中能够输入的最大字节长度。nMaxChars参数指定了用户能够输入文字的最大字节长度,如果为0则长度被限制为65535个字节。

    int AddString(LPCTSTR lpszString);
    为组合框控件中的列表框添加新的列表项。lpszString参数是指向要添加的字符串的指针。该函数的返回值如果大于等于0,那么它就是新列表项的索引,而如果有错误发生则会返回CB_ERR,如果没有足够的内存存放新字符串则返回CB_ERRSPACE。

    int DeleteString(UINT nIndex);
    删除组合框中某指定位置的列表项。nIndex参数指定了要删除的列表项的索引。该函数的返回值如果大于等于0,那么它就是组合框中剩余列表项的数量。如果nIndex指定的索引超出了列表项的数量则返回CB_ERR。

    int FindString(int nStartAfter,LPCTSTR lpszString) const;
    在组合框控件的列表框中查找但不选中第一个包含指定前缀的列表项。nStartAfter参数指定了第一个要查找的列表项之前的那个列表项的索引。lpszString指向包含要查找的前缀的字符串。该函数的返回值如果大于等于0,那么它是匹配列表项的索引,如果查找失败则返回CB_ERR。

    int InsertString(int nIndex,LPCTSTR lpszString);
    向组合框控件的列表框中插入一个列表项。nIndex参数指定了要插入列表项的位置,lpszString参数则指定了要插入的字符串。该函数返回字符串被插入的位置,如果有错误发生则会返回CB_ERR,如果没有足够的内存存放新字符串则返回CB_ERRSPACE。

    int SelectString(int nStartAfter,LPCTSTR lpszString);
    在组合框控件的列表框中查找一个字符串,如果查找到则选中它,并将其显示到编辑框中。参数同FindString。如果字符串被查找到则返回此列表项的索引,如果查找失败则返回CB_ERR,并且当前选择项不改变。

    此外,CComboBox类还继承了CWnd类的成员函数GetWindowText、SetWindowText等。

    CComboBox类应用实例

    最后给大家写一个简单的实例,说明CComboBox的几个成员函数及通知消息等的使用方法。此实例实现的功能:在组合框中包含一个网站列表,切换组合框控件的列表框中选择的列表项时,将新选中的列表项的文本显示到编辑框中。下面是具体实现步骤:

    1. 创建一个基于对话框的MFC工程,名称设置为“ComBoxtest”。

    2. 在自动生成的对话框模板IDD_ComBoxtest_DIALOG中,删除“TODO: Place dialog controls here.”静态文本控件、“OK”按钮和“Cancel”按钮。添加一个Combo Box控件,ID设置为IDC_COMBO,Type属性设为Drop List,为下拉列表式组合框,编辑框不允许用户输入,Sort属性设为False,以取消排序显示。再添加四一个静态文本控件和两个编辑框,静态文本控件的Caption属性分为设置为设为“边缘选择”,“找边宽度”,“阈值“,”mm“,编辑框的ID设为IDC_EDIT1和IDC_EDIT2,Read Only属性设为True。此时的对话框模板如下图:
      这里写图片描述

    3. 为组合框IDC_WEB_COMBO添加CComboBox类型的控件变量m_ComBox1。
      为两个编辑框添加变量,分别为m_EdgeThreshold,m_EdgeWidth。
      并定位6个double类型的变量用于存贮 每条边的找边宽度和阈值。

    //定义每条边的参数;
    double Up_EdgeWidth = 0;   //上边缘找边宽度
    double Up_Threshold = 0;    //上边缘阈值
    
    double Under_EdgeWidth = 0;
    double Under = 0;
    
    double L_EdgeWidth = 0;
    double L_Thresh// CComBoxTestDlg 消息处理程序
    
    BOOL CComBoxTestDlg::OnInitDialog()
    {
        CDialogEx::OnInitDialog();
    
        // 将“关于...”菜单项添加到系统菜单中。
    
        // IDM_ABOUTBOX 必须在系统命令范围内。
        ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
        ASSERT(IDM_ABOUTBOX < 0xF000);
    
        CMenu* pSysMenu = GetSystemMenu(FALSE);
        if (pSysMenu != NULL)
        {
            BOOL bNameValid;
            CString strAboutMenu;
            bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
            ASSERT(bNameValid);
            if (!strAboutMenu.IsEmpty())
            {
                pSysMenu->AppendMenu(MF_SEPARATOR);
                pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
            }
        }
    
        // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
        //  执行此操作
        SetIcon(m_hIcon, TRUE);         // 设置大图标
        SetIcon(m_hIcon, FALSE);        // 设置小图标
    
        // TODO: 在此添加额外的初始化代码
        m_ComBox1.AddString(__T("上边缘"));
        m_ComBox1.AddString(__T("左侧边缘"));
        m_ComBox1.AddString(__T("下边缘"));
        m_ComBox1.AddString(__T("右侧边缘"));
    
    
        return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
    }
    

    5.我们希望在组合框中选中的列表项改变时,将最新的选择项实时显示到编辑框中,那么这就要用到CBN_SELCHANGE通知消息。为列表框IDC_COMBO的通知消息CBN_SELCHANGE添加消息处理函数CComBoxTestDlg::OnCbnSelchangeCombo(),并修改如下:

    /****************************************
    *函 数 名: CComBoxTestDlg::OnCbnSelchangeCombo()
    *描    述: 当选中组合框中的字符串的时候会调用此函数
    *输入参数:无
    *输出参数:无
    *作    者:shirunfa
    ******************************************/
    void CComBoxTestDlg::OnCbnSelchangeCombo()
    {
        // TODO: 在此添加控件通知处理程序代码
        CString strtemp;
        int nsel;
        // 获取组合框控件的列表框中选中项的索引 
        nsel = m_ComBox1.GetCurSel(); 
        //根据索引获取该字符串
        m_ComBox1.GetLBText(nsel,strtemp);
    
        if(strtemp==__T("上边缘"))
        {
            m_EdgeThreshold = Up_Threshold;
            m_EdgeWidth     = Up_EdgeWidth;
        }
        if(strtemp==__T("下边缘"))
        {
            m_EdgeThreshold = Under_EdgeWidth;
            m_EdgeWidth     = Under_EdgeWidth;
        }
        if(strtemp==__T("左侧边缘"))
        {
            m_EdgeThreshold = L_Threshold;
            m_EdgeWidth     = L_EdgeWidth;
        }
        if(strtemp==__T("右侧边缘"))
        {
            m_EdgeThreshold = R_Threshold;
            m_EdgeWidth     = R_EdgeWidth;
        }
        UpdateData(FALSE);
    }

    6.然后给两个编辑框添加消息处理函数,代码如下:

    /****************************************
    *函 数 名: CComBoxTestDlg::OnEnChangeEdit1()
    *描    述: 当选中找边宽度编辑框的时候会调用此函数
    *输入参数:无
    *输出参数:无
    *作    者:shirunfa
    ******************************************/
    void CComBoxTestDlg::OnEnChangeEdit1()
    {
        UpdateData(TRUE);
        //先判断选择哪一条边
        int E_num;
        CString strtemp;
        E_num = m_ComBox1.GetCurSel();
        m_ComBox1.GetLBText(E_num,strtemp);
        if(strtemp == __T("上边缘"))
        {
    
            Up_EdgeWidth = m_EdgeWidth;
        }
        if(strtemp == __T("下边缘"))
        {
    
            Under_EdgeWidth = m_EdgeWidth;
        }
    
        if(strtemp == __T("左侧边缘"))
        {
    
            L_EdgeWidth = m_EdgeWidth;
        }
    
        if(strtemp == __T("右侧边缘"))
        {
    
            R_EdgeWidth = m_EdgeWidth;
        }
    
    }
    
    /****************************************
    *函 数 名: CComBoxTestDlg::OnEnChangeEdit2()
    *描    述: 当选中阈值编辑框的时候会调用此函数
    *输入参数:无
    *输出参数:无
    *作    者:shirunfa
    ******************************************/
    void CComBoxTestDlg::OnEnChangeEdit2()
    {
        UpdateData(TRUE);
        //先判断选择哪一条边
        int E_num;
        CString strtemp;
        E_num = m_ComBox1.GetCurSel();
        m_ComBox1.GetLBText(E_num,strtemp);
        if(strtemp == __T("上边缘"))
        {
            Up_Threshold = m_EdgeThreshold;
    
        }
        if(strtemp == __T("下边缘"))
        {
            Under_EdgeWidth = m_EdgeThreshold;
    
        }
    
        if(strtemp == __T("左侧边缘"))
        {
            L_Threshold = m_EdgeThreshold;
    
        }
    
        if(strtemp == __T("右侧边缘"))
        {
            R_Threshold = m_EdgeThreshold;
    
        }
    }
    

    7.运行程序,弹出结果对话框,在对话框的组合框中改变选择项时,编辑框中的显示会相应改变。效果图如下:
    这里写图片描述

    展开全文
  • C++组合框控件使用方法

    千次阅读 2008-12-08 10:07:00
    CComboBox控件又称作组合框控件,其有三种形态可供选择, 1.简单组合框(Simple) 2.下拉组合框(Drop-down) 3.下拉列表式组合框(Drop-down list).CComboBox控件的常用设置属性说明: type属性:里面一共有三个选项....

     CComboBox控件又称作组合框控件,其有三种形态可供选择,

           1.简单组合框(Simple)

           2.下拉组合框(Drop-down)

           3.下拉列表式组合框(Drop-down list).

    CComboBox控件的常用设置属性说明:
             type属性:里面一共有三个选项.就是其三种形式, 我们常用的是后两种形态,其区别就是Dropdown的编辑区为可编辑控件,而droplist为静态控件.

             Data属性:当程序初始化的时候,下拉列表将显示其属性里面的内容,内容用分号分隔.其属性只支持后2中形式,

             Sort 属性:对添加到下拉列表框中的数据自动进行排序,如果你不想他改变你的显示序列,把他设置成False.
    控件是一个窗口.其基类是为CWnd.所以CComboBox也可以使用CWnd的一些函数,它自己的函数有30几种.我写了一个示范程序,演示了一些常用的函数,你可以参考其代码看到其功能.

             注:m_cbox 为CComboBox控件的关联变量,m_end为EDIT控件的关联变量 

         1.GetCount() 函数:用以获得列表框中的选项数目.     int GetCount() const;(此乃函数原型,我会列在每条的后面) 下面的例子是程序中各个按钮里面的代码
    int i;
         CString str;
         i=m_cbox.GetCount();
         str.Format ("%d",i);
         m_end="一共有"+str+"个数据";
    UpdateData(FALSE);

         2.GetCurSel() 函数:用以得到用户选中下拉列表框中数据的索引值.返回的值是重0开始的,如果没有选择任何选项将会返回-1     Int  GetCurSel() const
    int i;
         CString str;
         i=m_cbox.GetCurSel ();
         str.Format ("%d",i+1);
         if (i==-1) m_end="你什么都没有选";
         else m_end="你选的是第"+str+"项";
    UpdateData(FALSE);

         3.SetCurSel函数:选取列表框中的一个选项,索引从0开始,-1为什么都不选.当你需要把列表框中已经选取的内容清空时就可以使用这个函数;
    if(m_i<3) m_cbox.SetCurSel (m_i++);//m_i为int型变量 用以计数
    else {
         m_cbox.SetCurSel (-1);
         m_i=0;
               }

        4.SetEditSel函数:设置编辑区中蓝色选中字段的长度, BOOL SetEditSel( intnStartChar,
         int nEndChar ); nStartChar是起始的位置,当设置为-1时为不选择任何字段,nEndChar是结束位置.还有一个对应的函数GetEditSel是取得其位置,在此不详解.
    m_cbox.SetEditSel (3,5);//在编辑框中打入一串数字在按此按钮就能看到效果
                            //其作用就是选中第3到第5个字符作为热点

         5.Clear() Cut() Paste() Copy() 这四个函数我放在一起说,因为他们都是针对编辑框中选定的文字进行编辑的函数,很多初学者很不明白这4个函数,使用这些函数没有作用,其实不然,这些函数对于在编辑框中的内容不进行处理,他真正处理的是你用鼠标选中的内容,对于Clear()函数很多书中解释都是有误的,很多书中对他的解释是清除当前选中的文本,我认为这样的解释是有歧异的,真正的解释是把你刚选中的文本释放掉,也就是不选,而不是把选中的删除,真正的删除选中的文本的函数是Cut(),Copy()是复制选中的文本,Paste()是粘贴到光标处.其演示就不写在程序中,有兴趣的朋友可以自己试试.

         6.LimitText()函数.其作用是限制在编辑框中键入的文本长度,BOOL LimitText(int nMaxChars); 当nMaxChars为0时,不是不能输入,而是长度最大化为65535字节

         7.GetLBText()函数.其原型为void GetLBText( int nIndex, CString&rString ).nIndex为列表框中数据的索引值,rString 为字符串,其作用就是把索引号为nIndex的数据放到rString变量中.与其对应的GetLBTextLen(intnIndex)函数就是得到索引号为nIndex中数据的长度
                  m_cbox.GetLBText (2,m_end); // GetLBText按钮
              UpdateData(0);
                       CString str;  //GetLBTextLen按钮
              int i=m_cbox.GetLBTextLen (2);
              str.Format ("%d",i);
              m_end=str;
              UpdateData(FALSE);
         8.AddString()  DeleteString()  InsertString()  ResetContent() 四个函数放在一起,他们都是针对下拉列表框的处理函数, AddString(LPCTSTR lpszString) 是在列表框的尾巴添加一条数据,参数为字符串. DeleteString(UINT nIndex)为删除指定索引为nIndex的数据. InsertString(int nIndex, LPCTSTR lpszString)在索引nIndex处插入IpszString的内容. ResetContent()是清除列表框中所有的内容.
         9.SetDroppedWidth(UINT nWidth) 函数.用于设定下拉列表框的最小宽度,当下拉列表框中的数据很长不能完全显示时,我们可以使用这个函数把列表框的宽度设置的大些.同样GetDroppedWidth()是返回列表框的宽度.
     
    以下为总结了各大论坛中对CCombBox控件使用的问题.并给出了正解.
    1.关于CComboBox在对话框中没有下拉项目的问题
    答: 资源编辑器中对话框中CComboBox组件的垂直范围拉大了下,就看见字体了,看到那个向下的黑箭头了吗,点他下拉,嘿嘿就这么简单.

    2.请问怎样能让CCombobox记住用户的输入.下次使用时还有
    答: 要记住用户的输入必须用到文件读写,或者把内容添加到注册表中,我会在以后给出解决办法.

    3. CCOMBOBOX如何使它只读,不能编辑
    答: 看了本文的介绍也许你现在知道了, CCOMBOBOX有三种类型的,选择你需要的吧!

    4. 我要让界面一显示,就能在Combo框中显示默认的数据
    答: 你要在OnInitDialog里面加上我上面所提到的SetCurSel()函数就行了.

    5.  如何把选好的内容赋给变量
    答: 先给CCOMBOBOX设置一个CString关联变量,再添加事件处理函数CBN_ Selchange.使用UpdateData(FALSE)就行了.

    6. 在CComboBox组合框中,条目的对齐方式是左对齐,能设置为对中或者右对齐吗?
    答: 没有直接的方法,你必须自己对齐, 比如最大长度是10
        int i;
         String.Format("%10d", i);
        CComboBox->AddString
    //动态子类化CComboBox以得到子控件EDIT及LISTBOX///
    ComboBox是比较常用的一个控件,有三种样式:CBS_SIMPLE(简单),CBS_DROPDOWN(下拉),CBS_DROPDOWNLIST(下拉列表),其中下拉列表样式是不允许输入的,简单样式是永远都显示下拉框的。

    ComboBox是由一个ListBox和一个Edit框组合而成。本文将以限制只能输入电话号码为例介绍子类化过程得到Edit框(类似的可以得到ListBox)。

     

     

     


    自己做的的小站,喜欢网络小说、喜欢读书的朋友欢迎来转一转
    小说夜读

     

     

     

    展开全文
  • C# ComboBox:组合框控件

    千次阅读 2019-06-11 23:19:40
    在C#WinForm开发中组合框(ComboBox)控件也称下拉列表框, 用于选择所需的选项,例如在注册学生信息时选择学历、专业等。 使用组合框可以有效地避免非法值的输入。 在组合框中也有一些经常使用的属性,如下表所...

           在 C# WinForm开发中组合框(ComboBox)控件也称下拉列表框,

     用于选择所需的选项,例如在注册学生信息时选择学历、专业等。
     
            使用组合框可以有效地避免非法值的输入。

    在组合框中也有一些经常使用的属性,如下表所示。

           在组合框中常用的事件是改变组合框中的值时发生的,即组合框中的选项改变事件 SelectedlndexChanged。

    【实例】

                实现一个选择专业的实例。

    Form1.cs

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace ComboBox
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            //窗体加载事件,为组合框添加值
            private void Form1_Load(object sender, EventArgs e)
            {
                comboBox1.Items.Add("计算机应用");
                comboBox1.Items.Add("英语");
                comboBox1.Items.Add("会计");
                comboBox1.Items.Add("软件工程");
                comboBox1.Items.Add("网络工程");
            }
    
            //组合框中选项改变的事件
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                //当组合框中选择的值发生变化时弹出消息框显示当前组合框中选择的值
                MessageBox.Show("您选择的专业是:" + comboBox1.Text, "提示");
            }
    
            //“添加”按钮的单击事件,用于向组合框中添加文本框中的值
            private void button1_Click(object sender, EventArgs e)
            {
                //判断文本框中是否为空,不为空则将其添加到组合框中
                if (textBox2.Text != "")
                {
                    //判断文本框中的值是否与组合框中的的值重复
                    if (comboBox1.Items.Contains(textBox2.Text))
                    {
                        MessageBox.Show("该专业已存在!");
                    }
                    else
                    {
                        comboBox1.Items.Add(textBox2.Text);
                        MessageBox.Show("添加成功!");
                    }
                }
                else
                {
                    MessageBox.Show("请输入专业!", "提示");
                }
            }
    
            //“删除按钮的单击事件,用于删除文本框中输入的值”
            private void button2_Click(object sender, EventArgs e)
            {
                //判断文本框是否为空
                if (textBox2.Text != "")
                {
                    //判断组合框中是否存在文本框中输入的值
                    if (comboBox1.Items.Contains(textBox2.Text))
                    {
                        comboBox1.Items.Remove(textBox2.Text);
                        MessageBox.Show("删除成功!");
                    }
                    else
                    {
                        MessageBox.Show("您输入的专业不存在", "提示");
                    }
                }
                else 
                {
                    MessageBox.Show("请输入要删除的专业", "提示");
                }
            }
     
        }
    }
    

    Program.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace ComboBox
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }
    

                                  

                                   

                                       

     

     

     

     


     

    展开全文
  • MFC组合框控件总结及用法示例

    万次阅读 2014-04-26 23:01:50
    编程时用到了组合框,这个控件用得不是很多,现将组合框控件的属性和方法做一个小结,供后续参考。 组合框控件既可以进行输入,也可以在列表框组成部分中进行选择。打开组合框控件的属性窗口,下图所示:
  • 组合框控件Combo Box和CComboBox类

    千次阅读 2014-06-24 14:54:27
    本节主要讲解组合框控件Combo Box。组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的日常操作提供了很多方便。  组合框控件...
  • 组合框控件 -- CComboBox

    2016-08-08 22:36:00
    组合框控件 -- CComboBox 组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框。Properties面板中设置type属性。在...
  • 上一节讲了列表框控件...组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的日常操作提供了很多方便。 组合框控件简介 ...
  • 组合框控件CComboBox

    千次阅读 2011-01-22 22:48:00
    组合框由一个列表框和一个静态文本控件或编辑控件组成。当用户在列表框中选中一个项目时,该项目将显示在静态文本或编辑框中。 CComboBox控件的主要方法、消息如下。 (1)GetTopIndex方法方法返回列表框中第...
  • 上一节鸡啄米讲了列表框...组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的日常操作提供了很多方便。  组合框控件简介  
  • MFC控件--VS2010 组合框控件Combo Box

    千次阅读 2017-02-15 17:08:26
    关注微信公众号“二进制小站”~~获取更多分析~~(文末二维码~~) ...组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的日常操作...
  • 上一节鸡啄米讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box。组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的...
  • 上一节讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box。组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的日常...
  • 上一节鸡啄米讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box。组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的...
  • 上一节讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box。组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。  组合框控件...
  • 上一节讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box。组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的日常...
  • CComboBox控件又称作组合框控件,其有三种形态可供选择,1.基本组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list)。 CComboBox控件的常用配置属性说明: type属性:里面一共有三个...
  • 组合框控件用法大全

    千次阅读 2014-08-04 00:47:02
    当你在界面上拖出来了combox控件后,点击它的属性,把No integral height这一项选成true 点击一下那个combox控件的小三角,现在拖动出现的那个框框的的长度,拖到你觉得合适就行啦 如果你的内容比较多,那么你...
  • Combo Box 组合框控件总结

    千次阅读 2013-12-20 13:29:28
    1)定义控件变量  对已创建的Dialog,从控件工具箱将Combo Box 控件拖放到上面。打开 Class Wizard,添加控件对应变量,如:CComboBox m_combo。 2) 在Combo Box控件属性的Data标签里面添加,一行表示Combo ...
  • 组合框控件简介    组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框。下面讲讲它们的区别。 ① 简易组合框中的...
  • python-tkinter-GUI简单化编程之按钮组合框控件python tkinter GUI简单化编程之文章目录(点击可传送)一、自我介绍、封装及使用方法二、封装按钮组合框控件三、封装库的使用四、总结 创作不易,请多包涵支持,谢谢...
  • python-tkinter-GUI简单化编程之数据组合框控件python tkinter GUI简单化编程之文章目录(点击可传送)一、自我介绍、封装及使用方法二、封装数据组合框控件三、封装库的使用四、总结 创作不易,请多包涵支持,谢谢...
  • 上一节鸡啄米讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box。组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,649
精华内容 14,259
关键字:

删除组合框控件的方法