Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3404124
  • 博文数量: 754
  • 博客积分: 10132
  • 博客等级: 上将
  • 技术积分: 7780
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-14 23:36
文章分类

全部博文(754)

文章存档

2012年(3)

2011年(39)

2010年(66)

2009年(167)

2008年(479)

我的朋友

分类: C/C++

2008-03-04 10:55:34

/********************************************************
*              *
*    ComboBox下拉框实例      *
*              *
********************************************************/
#pragma once
#include "afxwin.h"
#include
using namespace std ;
// CComboxDlg 对话框
typedef struct tagComboxItem{
 char key[50] ;
 char val[100] ;
}SComboxItem ;
class CComboxDlg : public CDialog
{
 DECLARE_DYNAMIC(CComboxDlg)
public:
 CComboxDlg(CWnd* pParent = NULL);   // 标准构造函数
 virtual ~CComboxDlg();
// 对话框数据
 enum { IDD = IDD_DLG_COMBOXSAMPLE };
protected:
 virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
 DECLARE_MESSAGE_MAP()
public:
 CComboBox m_combox;
public:
 CEdit m_key;
public:
 CEdit m_val;
public:
 CButton m_btnAdd;
public:
 CButton m_btnEdit;
public:
 CButton m_btnDel;
public:
 afx_msg void OnBnClickedBtnAdd();
public:
 afx_msg void OnBnClickedBtnDel();
public:
 afx_msg void OnBnClickedBtnEdit();
public:
 afx_msg void OnCbnSelchangeCombo();
};


//////////////////////////////////////////
// ComboxDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "MFC1.h"
#include "ComboxDlg.h"

// CComboxDlg 对话框
IMPLEMENT_DYNAMIC(CComboxDlg, CDialog)
CComboxDlg::CComboxDlg(CWnd* pParent /*=NULL*/)
 : CDialog(CComboxDlg::IDD, pParent)
{
}
CComboxDlg::~CComboxDlg()
{
}
void CComboxDlg::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
 DDX_Control(pDX, IDC_COMBO, m_combox);
 DDX_Control(pDX, IDC_EDIT_KEY, m_key);
 DDX_Control(pDX, IDC_EDIT_VAL, m_val);
 DDX_Control(pDX, IDC_BTN_ADD, m_btnAdd);
 DDX_Control(pDX, IDC_BTN_EDIT, m_btnEdit);
 DDX_Control(pDX, IDC_BTN_DEL, m_btnDel);
}

BEGIN_MESSAGE_MAP(CComboxDlg, CDialog)
 ON_BN_CLICKED(IDC_BTN_ADD, &CComboxDlg::OnBnClickedBtnAdd)
 ON_BN_CLICKED(IDC_BTN_DEL, &CComboxDlg::OnBnClickedBtnDel)
 ON_BN_CLICKED(IDC_BTN_EDIT, &CComboxDlg::OnBnClickedBtnEdit)
 ON_CBN_SELCHANGE(IDC_COMBO, &CComboxDlg::OnCbnSelchangeCombo)
END_MESSAGE_MAP()

// CComboxDlg 消息处理程序
void CComboxDlg::OnBnClickedBtnAdd()
{
 // TODO: 在此添加控件通知处理程序代码
 CString sKey("") ;
 CString sVal("") ;
 m_key.GetWindowText(sKey) ;
 m_val.GetWindowText(sVal) ;
 SComboxItem *item = (SComboxItem*)malloc(sizeof(SComboxItem)) ;
 strcpy(item->key,sKey.GetBuffer()) ;
 strcpy(item->val,sVal.GetBuffer()) ;
 int nIndex = m_combox.InsertString(-1,sVal) ;
 m_combox.SetItemDataPtr(nIndex,item) ;
}
void CComboxDlg::OnBnClickedBtnDel()
{
 // TODO: 在此添加控件通知处理程序代码
 int nIndex = m_combox.GetCurSel() ;
 m_combox.DeleteString(nIndex) ;
}
void CComboxDlg::OnBnClickedBtnEdit()
{
}
void CComboxDlg::OnCbnSelchangeCombo()
{
 // TODO: 在此添加控件通知处理程序代码
 int nIndex = m_combox.GetCurSel() ;
 void *pData  = m_combox.GetItemDataPtr(nIndex) ;
 SComboxItem *item = (SComboxItem*)pData ;
 m_key.SetWindowText(item->key) ;
 m_val.SetWindowText(item->val) ;
}
阅读(13341) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~