• MFC之下拉框


    MFC可能会持续更新吧......因为各种原因,IDE用的vs2010。

    新建一个MFC应用程序,项目名叫做comboBox,位置可自选。

    在应用程序类型中选择基于对话框,点击完成

    可以看到创建之后一个MFC窗口的初始样式

    在右侧工具箱中选择combo box

    注意选择前ctrl+A全选初始窗口,delete删除原来的控件。

    下拉框右键属性,在data中添加项

    注意分号分隔不同的项,比如:鸡翅;可乐;薯片

    添加后的界面

    不过此时的框中,鸡翅可乐的数据可以被修改,比如改成鸡腿,这是原来下拉的项中所没有的。

    同样右键属性,在右边的type中,原本是dropdown,改选成droplist,这样就不可修改了。

    注意一点,data中的和下拉框中项的排序不一定相同,如果需要按照自己的顺序,也是右键,将sort改选成false。

    在代码中添加data项以及其他操作

    右键添加变量,然后填写变量名,并选好访问方式,点击完成。

    然后在左侧的类视图中点开CcomboBoxDlg,选择DodataExchange()方法,可以看到n_cbx已经和ComboxBox相关联。

    点击OnInitDialog()函数,在其中填写代码。

    //下拉框添加
    n_cbx.AddString(TEXT("鸡翅"));
    n_cbx.AddString(TEXT("可乐"));
    n_cbx.AddString(TEXT("薯片"));
    n_cbx.AddString(TEXT("蛋挞"));
    

    设置默认选项,使得还没有选择时,框中有默认值。

    n_cbx.SetCurSel(0);
    

    其他一些操作

    //插入操作
    n_cbx.InsertString(4, TEXT("汉堡"));
    
    //删除
    n_cbx.DeleteString(3);
    
    //获取1号的索引具体内容
    CString str;             //准备一个str,得到1号索引中的值
    n_cbx.GetLBText(1, str);
    MessageBox(str);         //弹出str
    

    触发事件

    先注释获取的代码

    然后打开:资源视图--dialog,然后选择第二个--控件事件--selectchange,当选项更改时,就会触发事件(就是在下拉框中选择另一个项)。然后可以监听事件并进行一些操作。

    添加代码,当更换下拉框选项时,会弹出更改的选项

    //拿到索引的位置
    int index = n_cbx.GetCurSel();
    
    CString str;
    n_cbx.GetLBText(index, str);
    
    MessageBox(str);
    

    弹出效果图

  • 相关阅读:
    Extjs知识点汇总
    div设置滚动条内容任然显示不全
    win7 系统安装 docker
    docker常用命令
    cargo实现自动化部署远程jetty容器(非安全模式)
    win7 失去焦点解决方案
    jeecms 评论相关
    jeecms v8 网站访问量配置
    python——进程池
    python多进程编程常用到的方法
  • 原文地址:https://www.cnblogs.com/echobiscuit/p/12706832.html
Copyright © 2020-2023  润新知