加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

组合框使用之添加组合框的列表项

(2012-03-02 20:17:04)
标签:

杂谈

分类: MFC小程序
http://s10/middle/6f2d29af4ba419da439d9&690
框1:组合框Combo Box,关联Control类型m_ctlCombo
框2:静态文本框Static Text 关联Value类型 CString m_static
框3:编辑框Edit Control 关联Value类型 CString m_edit

一、初始化对话框OnInitDialog函数
BOOL CTest60BaseComboBoxDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    ......
        // TODO: 在此添加额外的初始化代码
    m_ctlCombo.AddString(L"Visual C++程序开发技术");
    m_ctlCombo.SetCurSel(0);
    int nselect=m_ctlCombo.GetCurSel();
    m_ctlCombo.GetLBText(nselect,m_static);
    UpdateData(false);

    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

二、组合框选项改变时,实时显示当前选择项
为组合框添加CBN_SELCHANGE消息响应函数
1.在头文件中给出消息响应函数的声明
    ......
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    afx_msg void OnSelchangeCombo();
    DECLARE_MESSAGE_MAP()
2.在源文件中实现完成消息映射
    BEGIN_MESSAGE_MAP(CAddToToolBarView, CView)
    //{{AFX_MSG_MAP(CAddToToolBarView)
         ON_CBN_SELCHANGE(IDC_COMBOX, OnSelchangeCombo)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
函数实现代码:
void CTest60BaseComboBoxDlg::OnSelchangeCombo()
{
    int nselect=m_ctlCombo.GetCurSel();
    m_ctlCombo.GetLBText(nselect,m_static);
    UpdateData(false);
}

三、“添加”按钮添加消息响应函数
void CTest60BaseComboBoxDlg::OnAddString()
{
    // TODO: 在此添加控件通知处理程序代码
    UpdateData(true);
    if(m_edit.IsEmpty())
    {
        AfxMessageBox(L"添加项不能为空");
        return;
    }
    if (CB_ERR==m_ctlCombo.FindString(-1,(LPCTSTR)m_edit)) //判断该项是否已经在组合框中存在
    {
        m_ctlCombo.AddString(m_edit);           //加入组合框
    }
    else
    {
        AfxMessageBox(L"该添加项已经存在!");
    }
    m_edit=L"";
    UpdateData(false);
}



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有