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

📄 memresultdetail.cpp

📁 使用vc进行数据库编程的好例子
💻 CPP
字号:
// MemResultDetail.cpp : implementation file
//

#include "stdafx.h"
#include "ManageSystem.h"
#include "MemResultDetail.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define MEMSIMPLE	0
#define MEMDETAIL	1
#define	PDTSIMPLE	2
#define	PDTDETAIL	3

#define DELETEMEM	0
#define	DELETEPDT	1

#define MODIFYMEM	0
#define MODIFYPDT	1

#define RECODE_FIRST	1
#define RECODE_PREVE	2
#define RECODE_NEXT		3
#define RECODE_LAST		4

#define SHOW_MEM	1
#define SHOW_PDT	2

//================
#define 	MEM_DETAIL	1
#define 	MEM_SIMPLE	3
/////////////////////////////////////////////////////////////////////////////
// CMemResultDetail dialog
extern bool g_isMlocked;

IMPLEMENT_DYNCREATE(CMemResultDetail, CDialog)

CMemResultDetail::CMemResultDetail(CWnd* pParent /*=NULL*/)
	: CDialog(CMemResultDetail::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMemResultDetail)
	m_Age = _T("");
	m_City = _T("");
	m_Company = _T("");
	m_IDCard = _T("");
	m_MemID = _T("");
	m_MemName = _T("");
	m_Province = _T("");
	m_Tel = _T("");
	m_Key = _T("");
	m_UserName = _T("");
	m_RegisterDate = 0;
	m_nsex = -1;
	//}}AFX_DATA_INIT
}


void CMemResultDetail::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMemResultDetail)
	DDX_Control(pDX, IDC_RADIO_MALE, m_btnMale);
	DDX_Control(pDX, IDC_MPREVE, m_btnMPreve);
	DDX_Control(pDX, IDC_MNEXT, m_btnMNext);
	DDX_Control(pDX, IDC_MLAST, m_btnMLast);
	DDX_Control(pDX, IDC_MFIRST, m_btnMFirst);
	DDX_Control(pDX, IDC_CNACEL2, m_btnCancel);
	DDX_Control(pDX, IDC_REGISTERDATE, m_ctrRegisterDate);
	DDX_Control(pDX, IDC_UERKEY, m_ctrKey);
	DDX_Control(pDX, IDC_SHOWSIMPM, m_btnShowSimp);
	DDX_Control(pDX, IDC_MODIFIRECODE2, m_btnModify);
	DDX_Control(pDX, IDC_DELETE2, m_btnDelete2);
	DDX_Control(pDX, IDC_ADDNEWM, m_btnAddNew);
	DDX_Control(pDX, IDC_USERNAME, m_ctrUserName);
	DDX_Control(pDX, IDC_TELPHONE, m_ctrTel);
	DDX_Control(pDX, IDC_PROVINCE, m_ctrProvince);
	DDX_Control(pDX, IDC_MEMNAME, m_ctrName);
	DDX_Control(pDX, IDC_MEMID, m_ctrMemID);
	DDX_Control(pDX, IDC_IDCARD, m_ctrIDCard);
	DDX_Control(pDX, IDC_COMPANY, m_ctrCompany);
	DDX_Control(pDX, IDC_CITY, m_ctrCity);
	DDX_Control(pDX, IDC_AGE, m_ctrAge);
	DDX_Text(pDX, IDC_AGE, m_Age);
	DDX_Text(pDX, IDC_CITY, m_City);
	DDV_MaxChars(pDX, m_City, 10);
	DDX_Text(pDX, IDC_COMPANY, m_Company);
	DDV_MaxChars(pDX, m_Company, 20);
	DDX_Text(pDX, IDC_IDCARD, m_IDCard);
	DDV_MaxChars(pDX, m_IDCard, 20);
	DDX_Text(pDX, IDC_MEMID, m_MemID);
	DDX_Text(pDX, IDC_MEMNAME, m_MemName);
	DDV_MaxChars(pDX, m_MemName, 20);
	DDX_Text(pDX, IDC_PROVINCE, m_Province);
	DDV_MaxChars(pDX, m_Province, 6);
	DDX_Text(pDX, IDC_TELPHONE, m_Tel);
	DDV_MaxChars(pDX, m_Tel, 15);
	DDX_Text(pDX, IDC_UERKEY, m_Key);
	DDV_MaxChars(pDX, m_Key, 20);
	DDX_Text(pDX, IDC_USERNAME, m_UserName);
	DDV_MaxChars(pDX, m_UserName, 20);
	DDX_DateTimeCtrl(pDX, IDC_REGISTERDATE, m_RegisterDate);
	DDX_Radio(pDX, IDC_RADIO_MALE, m_nsex);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMemResultDetail, CDialog)
	//{{AFX_MSG_MAP(CMemResultDetail)
	ON_BN_CLICKED(IDC_SHOWSIMPM, OnShowsimpm)
	ON_BN_CLICKED(IDC_DELETE2, OnDelete)
	ON_BN_CLICKED(IDC_MODIFIRECODE2, OnModifirecode)
	ON_BN_CLICKED(IDC_ADDNEWM, OnAddnew)
	ON_BN_CLICKED(IDC_CNACEL2, OnCnacel2)
	ON_BN_CLICKED(IDC_MFIRST, OnMfirst)
	ON_BN_CLICKED(IDC_MPREVE, OnMpreve)
	ON_BN_CLICKED(IDC_MNEXT, OnMnext)
	ON_BN_CLICKED(IDC_MLAST, OnMlast)
	ON_WM_SIZE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMemResultDetail message handlers

void CMemResultDetail::OnOK() 
{
	// TODO: Add extra validation here
}

void CMemResultDetail::OnCancel() 
{
	// TODO: Add extra cleanup here
}

void CMemResultDetail::OnShowsimpm() 
{
	// TODO: Add your control notification handler code here
	::SendMessage(GetParent()->m_hWnd,WM_CHANGEDIALOG,PDTSIMPLE,0);		
}

void CMemResultDetail::OnDelete() 
{
	// TODO: Add your control notification handler code here
	if(IDOK==AfxMessageBox("你确认要该删除纪录吗?",MB_OKCANCEL))
		::SendMessage(GetParent()->m_hWnd,WM_DELETEFROMDETAIL,0,DELETEMEM);	
}

void CMemResultDetail::OnModifirecode() 
{
	// TODO: Add your control notification handler code here
	CString WindowText;
	m_btnModify.GetWindowText(WindowText);

	if(WindowText=="修改记录")
	{
		g_isMlocked=true;
		MackEditReadOnly(false);
		m_btnAddNew.EnableWindow(false);
		m_btnDelete2.EnableWindow(false);
		m_btnShowSimp.EnableWindow(false);
		m_btnCancel.EnableWindow(true);
	
		bPreveEnable=m_btnMPreve.IsWindowEnabled();
		bNextEnable=m_btnMNext.IsWindowEnabled();

		m_btnMFirst.EnableWindow(false);
		m_btnMPreve.EnableWindow(false);
		m_btnMNext.EnableWindow(false);
		m_btnMLast.EnableWindow(false);

		m_btnModify.SetWindowText("保存");

		m_ctrUserName.SetFocus();

		return;
	}
	else if(WindowText=="保存")
	{
		if(m_MemID.IsEmpty())
		{
			AfxMessageBox("请输入会员编号。");
			return;
		}
		MackEditReadOnly(true);
		m_btnAddNew.EnableWindow(true);
		m_btnDelete2.EnableWindow(true);
		m_btnShowSimp.EnableWindow(true);
		m_btnCancel.EnableWindow(false);

		m_btnMFirst.EnableWindow(true);
		m_btnMPreve.EnableWindow(bPreveEnable);
		m_btnMNext.EnableWindow(false);
		m_btnMLast.EnableWindow(true);

		UpdateData(true);
		::SendMessage(GetParent()->m_hWnd,WM_MODIFIRECORDE,0,MODIFYMEM);
		m_btnModify.SetWindowText("修改记录");
	}
	
}

void CMemResultDetail::OnAddnew() 
{
	// TODO: Add your control notification handler code here
	CString WindowText;
	m_btnAddNew.GetWindowText(WindowText);
	
	if(WindowText=="添加记录")
	{
		EmptyEdit();
		g_isMlocked=true;
		MackEditReadOnly(false);
		m_btnModify.EnableWindow(false);
		m_btnDelete2.EnableWindow(false);
		m_btnShowSimp.EnableWindow(false);
		m_btnCancel.EnableWindow(true);

		bPreveEnable=m_btnMPreve.IsWindowEnabled();
		bNextEnable=m_btnMNext.IsWindowEnabled();
		
		m_btnMFirst.EnableWindow(false);
		m_btnMPreve.EnableWindow(false);
		m_btnMNext.EnableWindow(false);
		m_btnMLast.EnableWindow(false);

		m_btnAddNew.SetWindowText("保存");

		m_ctrUserName.SetFocus();
		
		return;
	}
	else if(WindowText=="保存")
	{
		UpdateData(true);
		
		if(m_MemID.IsEmpty())
		{
			AfxMessageBox("请输入会员编号。");
			return;
		}

		MackEditReadOnly(true);
		m_btnModify.EnableWindow(true);
		m_btnDelete2.EnableWindow(true);
		m_btnShowSimp.EnableWindow(true);
		m_btnCancel.EnableWindow(false);

		m_btnMFirst.EnableWindow(true);
		m_btnMPreve.EnableWindow(bPreveEnable);
		m_btnMNext.EnableWindow(false);
		m_btnMLast.EnableWindow(true);

		::SendMessage(GetParent()->m_hWnd,WM_RECORD_ADD,0,MEM_DETAIL);
		m_btnAddNew.SetWindowText("添加记录");
	}

}

void CMemResultDetail::MackEditReadOnly(bool bReadOnly)
{
	m_ctrAge.SetReadOnly(bReadOnly);
	m_ctrCity.SetReadOnly(bReadOnly);
	m_ctrCompany.SetReadOnly(bReadOnly);
	m_ctrIDCard.SetReadOnly(bReadOnly);
	m_ctrMemID.SetReadOnly(bReadOnly);
	m_ctrName.SetReadOnly(bReadOnly);
	m_ctrProvince.SetReadOnly(bReadOnly);
	m_ctrRegisterDate.EnableWindow(!bReadOnly);
	m_ctrTel.SetReadOnly(bReadOnly);
	m_ctrUserName.SetReadOnly(bReadOnly);
	m_ctrIDCard.SetReadOnly(bReadOnly);
	m_ctrKey.SetReadOnly(bReadOnly);
	GetDlgItem(IDC_RADIO_MALE)->EnableWindow(!bReadOnly);
	GetDlgItem(IDC_RADIO_FEMAL)->EnableWindow(!bReadOnly);
}

BOOL CMemResultDetail::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_btnAddNew.SetShade(CShadeButtonST::SHS_METAL);
	m_btnDelete2.SetShade(CShadeButtonST::SHS_METAL);
	m_btnModify.SetShade(CShadeButtonST::SHS_METAL);
	m_btnCancel.SetShade(CShadeButtonST::SHS_METAL);
	
	m_btnMFirst.SetShade(CShadeButtonST::SHS_METAL);
	m_btnMLast.SetShade(CShadeButtonST::SHS_METAL);
	m_btnMNext.SetShade(CShadeButtonST::SHS_METAL);
	m_btnMPreve.SetShade(CShadeButtonST::SHS_METAL);

	m_btnShowSimp.SetIcon(IDI_CLOSE, (int)BTNST_AUTO_GRAY);
	m_btnShowSimp.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);

	m_nsex=0;
	m_nSetNum=0;

	MackEditReadOnly(true);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CMemResultDetail::EmptyEdit()
{
	m_Age="";
	m_City="";
	m_Company="";
	m_IDCard="";
	m_Key="";
	m_MemID="";
	m_MemName="";
	m_Province="";
	m_Tel="";
	m_UserName="";
	m_nsex=0;

	UpdateData(false);
}

void CMemResultDetail::OnCnacel2() 
{
	// TODO: Add your control notification handler code here
	m_btnAddNew.EnableWindow(true);
	m_btnModify.EnableWindow(true);
	m_btnDelete2.EnableWindow(true);
	m_btnShowSimp.EnableWindow(true);
	m_btnCancel.EnableWindow(false);

	m_btnMFirst.EnableWindow(true);
	m_btnMPreve.EnableWindow(bPreveEnable);
	m_btnMNext.EnableWindow(bNextEnable);
	m_btnMLast.EnableWindow(true);

	m_btnAddNew.SetWindowText("添加记录");
	m_btnModify.SetWindowText("修改记录");

	MackEditReadOnly(true);
	g_isMlocked=false;
	::SendMessage(GetParent()->m_hWnd,WM_SHOW_MEM_RESULT_DETAIL,-1,-1);	
}

void CMemResultDetail::OnMfirst() 
{
	// TODO: Add your control notification handler code here
	::SendMessage(GetParent()->m_hWnd,WM_RECORDE_MOVE,RECODE_FIRST,SHOW_MEM);
}

void CMemResultDetail::OnMpreve() 
{
	// TODO: Add your control notification handler code here
	::SendMessage(GetParent()->m_hWnd,WM_RECORDE_MOVE,RECODE_PREVE,SHOW_MEM);
}

void CMemResultDetail::OnMnext() 
{
	// TODO: Add your control notification handler code here
	::SendMessage(GetParent()->m_hWnd,WM_RECORDE_MOVE,RECODE_NEXT,SHOW_MEM);
}

void CMemResultDetail::OnMlast() 
{
	// TODO: Add your control notification handler code here
	::SendMessage(GetParent()->m_hWnd,WM_RECORDE_MOVE,RECODE_LAST,SHOW_MEM);
}

void CMemResultDetail::ModifyFromSimple(bool bNew)
{
	if(bNew)
		OnAddnew();
	else
		OnModifirecode();
}

void CMemResultDetail::OnSize(UINT nType, int cx, int cy) 
{
	CDialog::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	AutoSize();
}

void CMemResultDetail::AutoSize()
{
	if(m_btnShowSimp.GetSafeHwnd())
	{
		CRect rect;
		GetClientRect(&rect);
		CRect btnRect;
		btnRect.top=rect.top+20;
		btnRect.right=rect.right-20;
		btnRect.bottom=btnRect.top+22;
		btnRect.left=btnRect.right-21;
		m_btnShowSimp.MoveWindow(&btnRect);
	}
}

⌨️ 快捷键说明

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