⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listboxdlg.cpp

📁 Visual_C++[1].NET_Bible1 Visual_C++宝典书中的全部源码
💻 CPP
字号:
// ListBoxDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ControlsDemo.h"
#include "ListBoxDlg.h"


static struct 
{
  char m_szName[50];
  char m_szContact[50];
  char m_szPhone[15];
} Vendors[] = {
  "Vendor 1", "Joe Schmoe", "411",
  "Vendor 2", "Jane Doe", "911",
  "Vendor 3", "Jenny", "867-5309"
};

typedef struct
{
  CString m_strName;
  CString m_strContact;
  CString m_strPhone;
} Vendor;

  
  // CListBoxDlg dialog

IMPLEMENT_DYNAMIC(CListBoxDlg, CDialog)
CListBoxDlg::CListBoxDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CListBoxDlg::IDD, pParent)
  , m_strName(_T(""))
  , m_strPhone(_T(""))
{
}

CListBoxDlg::~CListBoxDlg()
{
}

void CListBoxDlg::DoDataExchange(CDataExchange* pDX)
{
  CDialog::DoDataExchange(pDX);
  DDX_Control(pDX, IDC_LIST1, m_lbxVendors);
  DDX_Text(pDX, IDC_EDIT1, m_strName);
  DDX_Text(pDX, IDC_EDIT2, m_strContact);
  DDX_Text(pDX, IDC_EDIT3, m_strPhone);
}


BEGIN_MESSAGE_MAP(CListBoxDlg, CDialog)
  ON_BN_CLICKED(IDC_CREATE, OnBnClickedCreate)
  ON_WM_DESTROY()
  ON_BN_CLICKED(IDC_UPDATE, OnBnClickedUpdate)
  ON_BN_CLICKED(IDC_DELETE, OnBnClickedDelete)
  ON_LBN_SELCHANGE(IDC_LIST1, OnLbnSelchangeList1)
END_MESSAGE_MAP()


// CListBoxDlg message handlers
BOOL CListBoxDlg::OnInitDialog()
{
  CDialog::OnInitDialog();
  
  Vendor* pVendor;
  int index;
  for (int i = 0; i < sizeof Vendors / sizeof Vendors[0]; i++)
  {
    pVendor = new Vendor();
    pVendor->m_strName = Vendors[i].m_szName;
    pVendor->m_strContact = Vendors[i].m_szContact;
    pVendor->m_strPhone = Vendors[i].m_szPhone;

    index = m_lbxVendors.AddString(pVendor->m_strName);
    ASSERT(LB_ERR != index);
    if (LB_ERR != index)
    {
      m_lbxVendors.SetItemData(index, (DWORD)pVendor);
    }
  }

  return TRUE;
}

void CListBoxDlg::OnBnClickedCreate()
{
  // TODO: Add your control notification handler code here
}

void CListBoxDlg::OnDestroy()
{
  CDialog::OnDestroy();

  Vendor* pVendor;
  int nVendors = m_lbxVendors.GetCount();
  for (int i = 0; i < nVendors; i++)
  {
    pVendor = (Vendor*)m_lbxVendors.GetItemData(i);
    ASSERT(pVendor);
    if (pVendor)
    {
      delete pVendor;
    }
  }
}

void CListBoxDlg::OnBnClickedUpdate()
{
  // TODO: Add your control notification handler code here
}

void CListBoxDlg::OnBnClickedDelete()
{
  // TODO: Add your control notification handler code here
}

void CListBoxDlg::OnLbnSelchangeList1()
{
  m_strName = "";
  m_strContact = "";
  m_strPhone = "";

  int index = m_lbxVendors.GetCurSel();
  if (LB_ERR != index)
  {
    Vendor* pVendor = (Vendor*)m_lbxVendors.GetItemData(index);
    ASSERT(pVendor);
    if (pVendor)
    {
      m_strName = pVendor->m_strName;
      m_strContact = pVendor->m_strContact;
      m_strPhone = pVendor->m_strPhone;
    }
  }
  UpdateData(FALSE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -