📄 addpersondlg.cpp
字号:
// addpersondlg.cpp : 实现文件
//
#include "stdafx.h"
#include "kaoqing.h"
#include "addpersondlg.h"
#include "afxdao.h"
#include ".\addpersondlg.h"
// addpersondlg 对话框
IMPLEMENT_DYNAMIC(addpersondlg, CDialog)
addpersondlg::addpersondlg(CWnd* pParent )
: CDialog(addpersondlg::IDD, pParent)
, addpersonname(_T(""))
, addpersoncode(_T(""))
//, added(false)
, focus(0)
{
}
addpersondlg::~addpersondlg()
{
}
void addpersondlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, addpersonname);
DDX_Text(pDX, IDC_EDIT4, addpersoncode);
DDX_Control(pDX, IDC_BUTTON1, addpersonokbt);
DDX_Control(pDX, IDC_BUTTON13, addpersoncancelbt);
DDX_Control(pDX, IDC_EDIT1, addpersonnameet);
DDX_Control(pDX, IDC_EDIT4, addpersoncodeet);
DDX_Control(pDX, IDC_BUTTON2, modinamebt);
DDX_Control(pDX, IDC_BUTTON15, nomodinamebt);
DDX_Control(pDX, IDC_LIST2, list);
}
BEGIN_MESSAGE_MAP(addpersondlg, CDialog)
ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
//ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
ON_BN_CLICKED(IDC_BUTTON13, OnBnClickedButton13)
ON_BN_SETFOCUS(IDC_BUTTON1, OnBnSetfocusButton1)
ON_BN_KILLFOCUS(IDC_BUTTON1, OnBnKillfocusButton1)
ON_BN_SETFOCUS(IDC_BUTTON13, OnBnSetfocusButton13)
ON_BN_KILLFOCUS(IDC_BUTTON13, OnBnKillfocusButton13)
ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnNMDblclkList2)
ON_BN_CLICKED(IDC_BUTTON15, OnBnClickedButton15)
ON_EN_CHANGE(IDC_EDIT1, OnEnChangeEdit1)
END_MESSAGE_MAP()
// addpersondlg 消息处理程序
BOOL addpersondlg::OnInitDialog()
{
CDialog::OnInitDialog();
kaoqingbu.Open (".\\kqbook.mdb",0,0,";PWD=caolinjie1226loveyou");
// TODO: 在此添加额外的初始化
//added=false;
//list.SetTextColor(RGB(0,0,0));
list.SetExtendedStyle (LVS_EX_GRIDLINES|LVS_REPORT|LVS_EX_FULLROWSELECT|LVS_EX_FLATSB);
list.InsertColumn (0,_T("编号"));
list.InsertColumn (1,_T("姓名"));
list.SetColumnWidth (0,110);
list.SetColumnWidth (1,110);
this->UpdateData (false);
refreshlist ();
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void addpersondlg::OnBnClickedButton1()
{UpdateData (true);
addpersoncode.Remove (' ');
addpersonname.Remove (' ');
if(addpersoncode=="") {AfxMessageBox("请填写完整信息");addpersoncodeet.SetFocus ();return;}
if(addpersonname=="") {AfxMessageBox("请填写完整信息");addpersonnameet.SetFocus ();return;}
if(addpersoncode.GetLength ()!=4) {AfxMessageBox("编码规定为4个数字");addpersoncodeet.SetFocus ();return;}
CDaoRecordset addpersonrec;
addpersonrec.m_pDatabase =&kaoqingbu;
addpersonrec.Open (dbOpenDynaset, _T("select * from [人员编码表]"));
try
{addpersonrec.AddNew ();
addpersonrec.SetFieldValue(0,CString(addpersoncode));
addpersonrec.SetFieldValue(1,CString(addpersonname));
addpersonrec.Update ();
}
catch( CDaoException* e )
{
AfxMessageBox("编码或姓名不可以重复");
e->Delete( );
//added=false;
addpersonrec.Close ();
//kaoqingbu.Close ();
addpersoncodeet.SetFocus ();
return;
}
list.InsertItem (0,CString(addpersoncode));
list.SetItemText (0,1,CString(addpersonname));
this->GetParent ()->GetDlgItem (IDC_EDIT1)->SetWindowText (addpersoncode);
//this->GetParent ()->UpdateData (true);
//this->GetParent ()->GetDlgItem (IDC_EDIT2)->SetFocus ();
//added=true;
addpersonrec.Close ();
//if(kaoqingbu.IsOpen ()) kaoqingbu.Close ();
//addpersoncodeet.SetFocus ();
}
//void addpersondlg::OnOK()
//{
// // TODO: 在此添加专用代码和/或调用基类
//
// //CDialog::OnOK();
//}
void addpersondlg::OnBnClickedButton13()
{kaoqingbu.Close ();
OnCancel ();
// TODO: 在此添加控件通知处理程序代码
}
void addpersondlg::OnBnSetfocusButton1()
{focus=1;
// TODO: 在此添加控件通知处理程序代码
}
void addpersondlg::OnBnKillfocusButton1()
{focus=0;
// TODO: 在此添加控件通知处理程序代码
}
void addpersondlg::OnBnSetfocusButton13()
{focus=2;
// TODO: 在此添加控件通知处理程序代码
}
void addpersondlg::OnBnKillfocusButton13()
{focus=0;
// TODO: 在此添加控件通知处理程序代码
}
BOOL addpersondlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message ==WM_KEYDOWN)
switch(pMsg->wParam)
{case VK_RETURN: switch(focus)
{case 1: OnBnClickedButton1(); break;
case 2: OnBnClickedButton13();break;
default:{NextDlgCtrl();return TRUE;}
}
//return TRUE;//对应case VK_RETURN:
case VK_LEFT:{PrevDlgCtrl();return TRUE;}
case VK_RIGHT:{NextDlgCtrl();return TRUE;}
case VK_ESCAPE: return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
int addpersondlg::refreshlist(void)
{CDaoRecordset rec;
CString str;
int count=0;
rec.m_pDatabase=&kaoqingbu;
rec.Open (dbOpenDynaset, _T("select * from [人员编码表]"));
list.DeleteAllItems ();
if(rec.IsBOF ()) {rec.Close (); return count;}
while (!rec.IsEOF ())
{list.InsertItem (count,CString(V_BSTRT(&rec.GetFieldValue( 0 ))));
list.SetItemText (count,1,CString(V_BSTRT(&rec.GetFieldValue( 1 ))));
rec.MoveNext ();
count++;
}
rec.Close ();
return count;
}
void addpersondlg::OnCancel()
{
// TODO: 在此添加专用代码和/或调用基类
kaoqingbu.Close ();
CDialog::OnCancel();
}
void addpersondlg::OnBnClickedButton2()
{CString conditionstr;
UpdateData (true);
//addpersoncode.Remove (' ');
addpersonname.Remove (' ');
//if(addpersoncode=="") {AfxMessageBox("请填写完整信息");addpersoncodeet.SetFocus ();return;}
if(addpersonname=="") {AfxMessageBox("请填写完整信息");addpersonnameet.SetFocus ();return;}
//if(addpersoncode.GetLength ()!=4) {AfxMessageBox("编码规定为4个数字");addpersoncodeet.SetFocus ();return;}
CDaoRecordset modipersonrec;
modipersonrec.m_pDatabase =&kaoqingbu;
modipersonrec.Open (dbOpenDynaset, _T("select * from [人员编码表]"));
conditionstr.Format (_T("[编号]='%s'"),addpersoncode);
if(!modipersonrec.FindFirst (conditionstr))
{modipersonrec.Close ();
AfxMessageBox("数据库错误,请关闭");
return;
}
try
{modipersonrec.Edit ();
//modipersonrec.SetFieldValue(0,CString(addpersoncode));
modipersonrec.SetFieldValue(1,CString(addpersonname));
modipersonrec.Update ();
}
catch( CDaoException* e )
{
AfxMessageBox("姓名不可以重复");
e->Delete( );
//added=false;
modipersonrec.Close ();
//kaoqingbu.Close ();
addpersonnameet.SetFocus ();
return;
}
modipersonrec.Close ();
list.DeleteItem (index9);
list.InsertItem (index9,addpersoncode);
list.SetItemText (index9,1,addpersonname);
this->GetParent ()->GetDlgItem (IDC_EDIT1)->SetWindowText (addpersoncode);
addpersoncode=addpersonname="";UpdateData (false);
addpersoncodeet.EnableWindow (true);
addpersonokbt.EnableWindow (true);
modinamebt.EnableWindow (false);
nomodinamebt.EnableWindow (false);
index9=-1;
addpersonnameet.SetFocus ();
}
void addpersondlg::OnNMDblclkList2(NMHDR *pNMHDR, LRESULT *pResult)
{
index9=list.GetSelectionMark();
if(index9<0){return;}
{
addpersoncodeet .SetWindowText (CString(list.GetItemText (index9,0)));// TODO: 在此添加控件通知处理程序代码
addpersonnameet .SetWindowText (CString(list.GetItemText (index9,1)));// TODO: 在此添加控件通知处理程序代码
addpersoncodeet.EnableWindow (false);
addpersonokbt.EnableWindow (false);
modinamebt.EnableWindow (true);
nomodinamebt.EnableWindow (true);
addpersonnameet.SetFocus ();
}
//*pResult = 0;
}
void addpersondlg::OnBnClickedButton15()
{ addpersoncodeet.EnableWindow (true);
addpersonokbt.EnableWindow (true);
modinamebt.EnableWindow (false);
nomodinamebt.EnableWindow (false);
index9=-1;
addpersonnameet.SetFocus ();
// TODO: 在此添加控件通知处理程序代码
}
void addpersondlg::OnEnChangeEdit1()
{
// TODO: 如果该控件是 RICHEDIT 控件,则它将不会
// 发送该通知,除非重写 CDialog::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO: 在此添加控件通知处理程序代码
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -