📄 dialog1.cpp
字号:
// Dialog1.cpp : implementation file
//
#include "stdafx.h"
#include "图书管理系统.h"
#include "Dialog1.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDialog1 dialog
extern CMyApp theApp;
CDialog1::CDialog1(CWnd* pParent /*=NULL*/)
: CDialog(CDialog1::IDD, pParent)
{
//{{AFX_DATA_INIT(CDialog1)
m_bkID = _T("");
m_bkLei = _T("");
m_bkName = _T("");
m_bkPrice = _T("");
m_bkFlag = _T("");
m_bkExmple = _T("");
m_bkEditer = _T("");
m_bkAddress = _T("");
//}}AFX_DATA_INIT
}
void CDialog1::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDialog1)
DDX_Text(pDX, IDC_BKID, m_bkID);
DDX_Text(pDX, IDC_BKLEI, m_bkLei);
DDX_Text(pDX, IDC_BKNAME, m_bkName);
DDX_Text(pDX, IDC_BKPRICE, m_bkPrice);
DDX_Text(pDX, IDC_BKFLAG, m_bkFlag);
DDX_Text(pDX, IDC_BKEXEMPLE, m_bkExmple);
DDX_Text(pDX, IDC_BKEDITER, m_bkEditer);
DDX_Text(pDX, IDC_BKADDRESS, m_bkAddress);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDialog1, CDialog)
//{{AFX_MSG_MAP(CDialog1)
ON_BN_CLICKED(IDC_BTN_ADD, OnBtnAdd)
ON_BN_CLICKED(IDC_BTN_DELETE, OnBtnDelete)
ON_BN_CLICKED(IDC_BTN_SET, OnBtnSet)
ON_BN_CLICKED(IDC_PGDOWN, OnPgdown)
ON_BN_CLICKED(IDC_PGUP, OnPgup)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDialog1 message handlers
BOOL CDialog1::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_pRecordset.CreateInstance(__uuidof(Recordset));
try
{
m_pRecordset->Open("SELECT * FROM DemoTable",theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDialog1::OnBtnAdd()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bkName == "" || m_bkAddress == ""|| m_bkEditer=="" || m_bkExmple=="" ||
m_bkPrice=="" || m_bkLei=="" || m_bkID=="" || m_bkFlag=="")
{
AfxMessageBox("没有输入完整的内容!");
return;
}
if(Read(m_bkID)==1)
{
AfxMessageBox("图书号重复!");
return;
}
else
{
try
{
// 写入各字段值
m_pRecordset->AddNew();
m_pRecordset->PutCollect("BkID", _variant_t(m_bkID));
m_pRecordset->PutCollect("BkName", _variant_t(m_bkName));
m_pRecordset->PutCollect("BkEditer", _variant_t(m_bkEditer));
m_pRecordset->PutCollect("BkAddress", _variant_t(m_bkAddress));
m_pRecordset->PutCollect("BkPrice", _variant_t(m_bkPrice));
m_pRecordset->PutCollect("BkExmple", _variant_t(m_bkExmple));
m_pRecordset->PutCollect("BkFlag", _variant_t(m_bkFlag));
m_pRecordset->Update();
AfxMessageBox("插入成功!");
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
}
void CDialog1::OnBtnDelete()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_bkName == "" || m_bkAddress == ""|| m_bkEditer=="" || m_bkExmple=="" ||
m_bkPrice=="" || m_bkLei=="" || m_bkID=="" || m_bkFlag=="")
{
AfxMessageBox("没有选择要删除的项!");
return;
}
if( Read(m_bkID)==1)
{
try
{
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();
AfxMessageBox("删除成功!");
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
else
AfxMessageBox("没有该图书!");
}
void CDialog1::OnBtnSet()
{
// TODO: Add your control notification handler code here
UpdateData(); // 更新对话框数据
if(m_bkName == "" || m_bkAddress == ""|| m_bkEditer=="" || m_bkExmple=="" ||
m_bkPrice=="" || m_bkLei=="" || m_bkID=="" || m_bkFlag=="")
{
AfxMessageBox("表中记录数为空或姓名和年龄信息没有设置!");
return;
}
if(Read(m_bkID)==1)
{
// 修改当前记录的字段值
try
{
m_pRecordset->PutCollect("BkID", _variant_t(m_bkID));
m_pRecordset->PutCollect("BkName", _variant_t(m_bkName));
m_pRecordset->PutCollect("BkEditer", _variant_t(m_bkEditer));
m_pRecordset->PutCollect("BkAddress", _variant_t(m_bkAddress));
m_pRecordset->PutCollect("BkPrice", _variant_t(m_bkPrice));
m_pRecordset->PutCollect("BkExmple", _variant_t(m_bkExmple));
m_pRecordset->PutCollect("BkFlag", _variant_t(m_bkFlag));
m_pRecordset->Update();
AfxMessageBox("修改成功!");
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
else
AfxMessageBox("没有该图书!");
}
BOOL CDialog1::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
m_pRecordset->Close();
m_pRecordset =NULL;
return CDialog::DestroyWindow();
}
int CDialog1::Read(CString m_bkID/*,CString m_bkName,CString m_bkEditer,CString m_bkAddress,
CString m_bkPrice,CString m_bkExmple,CString m_bkFlag*/)
{
_variant_t var;
CString strbkName,strbkID,strbkEditer,strbkAddress,strbkExmple,strbkPrice,strbkFlag;
strbkName=strbkID=strbkEditer=strbkAddress=strbkExmple=strbkPrice=strbkFlag="";
try
{
if(!m_pRecordset->BOF)
m_pRecordset->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return 0;
}
// 读入库中各字段并加入列表框中
while(!m_pRecordset->adoEOF )
{
var = m_pRecordset->GetCollect("BkID");
if(var.vt != VT_NULL)
{
strbkID = (LPCSTR)_bstr_t(var);
SetDlgItemText(IDC_BKNAME,strbkID);
}
var = m_pRecordset->GetCollect("BkName");
if(var.vt != VT_NULL)
{
strbkName = (LPCSTR)_bstr_t(var);
SetDlgItemText(IDC_BKNAME,strbkName);
}
var = m_pRecordset->GetCollect("BkEditer");
if(var.vt != VT_NULL)
{
strbkEditer = (LPCSTR)_bstr_t(var);
SetDlgItemText(IDC_BKNAME,strbkEditer);
}
var = m_pRecordset->GetCollect("BkAddress");
if(var.vt != VT_NULL)
{
strbkAddress = (LPCSTR)_bstr_t(var);
SetDlgItemText(IDC_BKNAME,strbkAddress);
}
var = m_pRecordset->GetCollect("BkPrice");
if(var.vt != VT_NULL)
{
strbkPrice = (LPCSTR)_bstr_t(var);
SetDlgItemText(IDC_BKNAME,strbkPrice);
}
var = m_pRecordset->GetCollect("BkExmple");
if(var.vt != VT_NULL)
{
strbkExmple = (LPCSTR)_bstr_t(var);
SetDlgItemText(IDC_BKNAME,strbkExmple);
}
var = m_pRecordset->GetCollect("BkFlag");
if(var.vt != VT_NULL)
{
strbkFlag = (LPCSTR)_bstr_t(var);
SetDlgItemText(IDC_BKNAME,strbkFlag);
}
if(m_bkID==strbkID)
{
return 1;
break;
}
else
m_pRecordset->MoveNext();
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
return 2;
}
void CDialog1::OnPgdown()
{
// TODO: Add your control notification handler code here
Read(m_bkID) ;
}
void CDialog1::OnPgup()
{
// TODO: Add your control notification handler code here
// m_bkID-=1;
Read(m_bkID);
}
HBRUSH CDialog1::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_LISTBOX)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_SCROLLBAR)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_EDIT)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,180,220));
HBRUSH b=CreateSolidBrush(RGB(160,180,220));
return b;
}
else if(nCtlColor==CTLCOLOR_DLG)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,180,220));
HBRUSH b=CreateSolidBrush(RGB(160,180,220));
return b;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -