我想知道下面的代码那一段用了什么技术或者说什么组件控件
本人小白请见谅
劳烦各位指点一下#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif//-------------global 
extern CDatabase m_hDatabase ;
//------------end/////////////////////////////////////////////////////////////////////////////
// CDlgSpxxgl dialog
CDlgSpxxgl::CDlgSpxxgl(CWnd* pParent /*=NULL*/)
: CDialog(CDlgSpxxgl::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgSpxxgl)
//}}AFX_DATA_INIT
}
void CDlgSpxxgl::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgSpxxgl)
DDX_Control(pDX, IDC_EDIT_SPBH, m_hEditSpbh);
DDX_Control(pDX, IDOK, m_hBtnOk);
DDX_Control(pDX, IDC_BTN_SAVE, m_hBtnSave);
DDX_Control(pDX, IDC_BTN_MOD, m_hBtnMod);
DDX_Control(pDX, IDC_BTN_DEL, m_hBtnDel);
DDX_Control(pDX, IDC_BTN_ADD, m_hBtnAdd);
DDX_Control(pDX, IDC_LIST_SPXX, m_hListSpxx);
DDX_Control(pDX, IDC_EDIT_ZJM, m_hEditZjm);
DDX_Control(pDX, IDC_EDIT_NAME, m_hEditName);
DDX_Control(pDX, IDC_EDIT_MRJG, m_hEditMrjg);
DDX_Control(pDX, IDC_EDIT_GG, m_hEditGg);
DDX_Control(pDX, IDC_EDIT_CJ, m_hEditCj);
DDX_Control(pDX, IDC_EDIT_BZ, m_hEditBz);
DDX_Control(pDX, IDC_TAB_SPXX, m_hTabSpxx);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgSpxxgl, CDialog)
//{{AFX_MSG_MAP(CDlgSpxxgl)
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_SPXX, OnSelchangeTabSpxx)
ON_NOTIFY(NM_CLICK, IDC_LIST_SPXX, OnClickListSpxx)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_SPXX, OnDblclkListSpxx)
ON_BN_CLICKED(IDC_BTN_ADD, OnBtnAdd)
ON_BN_CLICKED(IDC_BTN_DEL, OnBtnDel)
ON_BN_CLICKED(IDC_BTN_MOD, OnBtnMod)
ON_BN_CLICKED(IDC_BTN_SAVE, OnBtnSave)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// CDlgSpxxgl message handlersBOOL CDlgSpxxgl::OnInitDialog() 
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here

InitCtrlData() ; return TRUE;  // return TRUE unless you set the focus to a control
              // EXCEPTION: OCX Property Pages should return FALSE
}void CDlgSpxxgl::OnSelchangeTabSpxx(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here

switch(m_hTabSpxx.GetCurSel())
{
case 0:
m_hEditZjm.ShowWindow(TRUE) ;
m_hEditName.ShowWindow(TRUE) ;
m_hEditMrjg.ShowWindow(TRUE) ;
m_hEditGg.ShowWindow(TRUE) ;
m_hEditCj.ShowWindow(TRUE) ;
m_hEditBz.ShowWindow(TRUE) ;
m_hEditSpbh.ShowWindow(TRUE) ;

m_hListSpxx.ShowWindow(FALSE) ;
break ;
case 1:
m_hEditZjm.ShowWindow(FALSE) ;
m_hEditName.ShowWindow(FALSE) ;
m_hEditMrjg.ShowWindow(FALSE) ;
m_hEditGg.ShowWindow(FALSE) ;
m_hEditCj.ShowWindow(FALSE) ;
m_hEditBz.ShowWindow(FALSE) ;
m_hEditSpbh.ShowWindow(FALSE) ; m_hListSpxx.ShowWindow(TRUE) ;
break ;
}
*pResult = 0; m_hDatabase.ListSpxxToCtrl(&m_hListSpxx) ;
}void CDlgSpxxgl::InitCtrlData()
{
//Init tab ctrl 
m_hTabSpxx.InsertItem(0, "商品基本信息") ;
m_hTabSpxx.InsertItem(1, "商品信息列表") ;
m_hTabSpxx.ShowWindow(TRUE) ; m_hListSpxx.InsertColumn(0, "ID", LVCFMT_CENTER, 30) ;
m_hListSpxx.InsertColumn(1, "商品名称", LVCFMT_CENTER, 100) ;
m_hListSpxx.InsertColumn(2, "规格", LVCFMT_CENTER, 50) ;
m_hListSpxx.InsertColumn(3, "助记码", LVCFMT_CENTER, 50) ;
m_hListSpxx.InsertColumn(4, "默认规格", LVCFMT_CENTER, 60) ;
m_hListSpxx.InsertColumn(5, "厂家", LVCFMT_CENTER, 120) ;
m_hListSpxx.InsertColumn(6, "备注", LVCFMT_CENTER, 100) ;
m_hListSpxx.SetExtendedStyle(m_hListSpxx.GetStyle() | LVS_EX_FULLROWSELECT);///INIT BUTTON CTRL
m_hBtnOk.SetIcon(IDI_ICON_CLOSE);
m_hBtnOk.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);
m_hBtnOk.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0)); m_hBtnSave.SetIcon(IDI_ICON_OK);
m_hBtnSave.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);
m_hBtnSave.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0));
m_hBtnSave.EnableWindow(FALSE) ; m_hBtnDel.SetIcon(IDI_ICON_DEL);
m_hBtnDel.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);
m_hBtnDel.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0)); m_hBtnAdd.SetIcon(IDI_ICON_ADD);
m_hBtnAdd.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);
m_hBtnAdd.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0)); m_hBtnMod.SetIcon(IDI_ICON_MOD);
m_hBtnMod.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);
m_hBtnMod.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0));
///
TabCtrlOfSelect(1) ;
}void CDlgSpxxgl::TabCtrlOfSelect(int m_nSelected)
{
switch(m_nSelected)
{
case 0:
{
m_hTabSpxx.SetCurSel(0) ;
//---
m_hEditZjm.ShowWindow(TRUE) ;
m_hEditName.ShowWindow(TRUE) ;
m_hEditMrjg.ShowWindow(TRUE) ;
m_hEditGg.ShowWindow(TRUE) ;
m_hEditCj.ShowWindow(TRUE) ;
m_hEditBz.ShowWindow(TRUE) ;
m_hEditSpbh.ShowWindow(TRUE) ;

m_hListSpxx.ShowWindow(FALSE) ;
m_hEditSpbh.SetFocus() ;
break ;
}
case 1:
{
m_hTabSpxx.SetCurSel(1) ;
m_hEditZjm.ShowWindow(FALSE) ;
m_hEditName.ShowWindow(FALSE) ;
m_hEditMrjg.ShowWindow(FALSE) ;
m_hEditGg.ShowWindow(FALSE) ;
m_hEditCj.ShowWindow(FALSE) ;
m_hEditBz.ShowWindow(FALSE) ;
m_hEditSpbh.ShowWindow(FALSE) ;

m_hListSpxx.ShowWindow(TRUE) ;
m_hEditSpbh.SetFocus() ;
break ;
}
}
m_hDatabase.ListSpxxToCtrl(&m_hListSpxx) ;
}void CDlgSpxxgl::OnClickListSpxx(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
char m_szID[30+1] ;
m_hListSpxx.GetItemText(m_hListSpxx.GetSelectionMark(), 0, m_szID, sizeof(m_szID)) ; m_hDatabase.EditSpxxToCtrl(m_szID, &m_hEditZjm, &m_hEditName, &m_hEditMrjg, &m_hEditGg, &m_hEditCj, &m_hEditBz, &m_hEditSpbh) ;

*pResult = 0;
}void CDlgSpxxgl::OnDblclkListSpxx(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
TabCtrlOfSelect(0) ;

*pResult = 0;
}void CDlgSpxxgl::OnBtnAdd() 
{
// TODO: Add your control notification handler code here
switch(m_hTabSpxx.GetCurSel())
{
case 0:
{
break ;
}
case 1:
{
TabCtrlOfSelect(0) ;
break ;
}
}
m_hEditZjm.SetWindowText("") ;
m_hEditName.SetWindowText("") ;
m_hEditMrjg.SetWindowText("") ;
m_hEditGg.SetWindowText("") ;
m_hEditCj.SetWindowText("") ;
m_hEditBz.SetWindowText("") ;
m_hEditSpbh.SetWindowText("") ;
m_hEditSpbh.SetFocus() ;
m_hBtnSave.EnableWindow() ;
}void CDlgSpxxgl::OnBtnDel() 
{
// TODO: Add your control notification handler code here
if(m_hListSpxx.GetSelectionMark() == -1)
{//未被选中
MessageBox("请选择欲删除条目!") ;
return ;
}
char m_szID[30+1] ;
m_hListSpxx.GetItemText(m_hListSpxx.GetSelectionMark(), 0, m_szID, sizeof(m_szID)) ;
m_hDatabase.DeleteDataWhere(SPXXT, m_szID) ;
TabCtrlOfSelect(1) ;
}void CDlgSpxxgl::OnBtnMod() 
{
// TODO: Add your control notification handler code here
switch(m_hTabSpxx.GetCurSel())
{
case 0:
{
break ;
}
case 1:
{
if(m_hListSpxx.GetSelectionMark() == -1)
{//未被选中
MessageBox("请选择欲修改条目!") ;
return ;
}
break ;
}
}
TabCtrlOfSelect(0) ;
m_hBtnSave.EnableWindow() ;
m_hEditSpbh.SetFocus() ;
}void CDlgSpxxgl::OnBtnSave() 
{
// TODO: Add your control notification handler code here char m_szZjm[10+1]="", m_szName[30+1], m_szID[30+1], m_szGg[20+1], m_szMrjg[10+1], m_szCj[30+1], m_szBz[100+1] ;
m_hEditSpbh.GetWindowText(m_szID, sizeof(m_szID)) ;
m_hEditName.GetWindowText(m_szName, sizeof(m_szName)) ;
m_hEditGg.GetWindowText(m_szGg, sizeof(m_szGg)) ;
m_hEditZjm.GetWindowText(m_szZjm, sizeof(m_szZjm)) ;
m_hEditMrjg.GetWindowText(m_szMrjg, sizeof(m_szMrjg)) ;
m_hEditCj.GetWindowText(m_szCj, sizeof(m_szCj)) ;
m_hEditBz.GetWindowText(m_szBz, sizeof(m_szBz)) ; //保存修改,更新数据库
m_hDatabase.UpdateSpxxData(m_szZjm,m_szName,m_szID,m_szGg,m_szMrjg,m_szCj,m_szBz) ; m_hBtnSave.EnableWindow(FALSE) ;
}

解决方案 »

  1.   

    纯MFC,算不上什么技术。
    windows c++ ui开发基础
      

  2.   

    就是MFC啊
      

  3.   

    ODBC 数据库的应用
      

  4.   

    m_hEditName.ShowWindow(TRUE) ;m_hTabSpxx.InsertItem(1, "商品信息列表") ;m_hListSpxx.InsertColumn(0, "ID", LVCFMT_CENTER, 30) ;m_hBtnOk.SetIcon(IDI_ICON_CLOSE);m_hBtnOk.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);m_hBtnOk.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0));m_hTabSpxx.SetCurSel(1) ;m_hListSpxx.GetItemText(m_hListSpxx.GetSelectionMark(), 0, m_szID, sizeof(m_szID)) ;m_hDatabase.EditSpxxToCtrl(m_szID, &m_hEditZjm, &m_hEditName, &m_hEditMrjg, &m_hEditGg, &m_hEditCj, &m_hEditBz, &m_hEditSpbh) ;m_hEditZjm.SetWindowText("") ;m_hEditSpbh.GetWindowText(m_szID, sizeof(m_szID)) ;m_hDatabase.DeleteDataWhere(SPXXT, m_szID) ;这几段代码分别是代表什么意思啊