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

📄 pdtresultdetail.cpp

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

#include "stdafx.h"
#include "ManageSystem.h"
#include "PdtResultDetail.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 	PDT_DETAIL	2
#define 	PDT_SIMPLE	4

/////////////////////////////////////////////////////////////////////////////
// CPdtResultDetail dialog
extern bool g_isPLocked;
extern PRODUCTCLASS* g_ProductClass;
IMPLEMENT_DYNCREATE(CPdtResultDetail, CDialog)

CPdtResultDetail::CPdtResultDetail(CWnd* pParent /*=NULL*/)
	: CDialog(CPdtResultDetail::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPdtResultDetail)
	m_Addr = _T("");
	m_Amount = _T("");
	m_Company = _T("");
	m_LinkMan = _T("");
	m_Name = _T("");
	m_Price = _T("");
	m_Produce = _T("");
	m_Provide = _T("");
	m_Resume = _T("");
	m_Specification = _T("");
	m_Telephone = _T("");
	m_strPicAddr = _T("");
	//}}AFX_DATA_INIT
}


void CPdtResultDetail::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPdtResultDetail)
	DDX_Control(pDX, IDC_CMBCLASSNAME, m_cmbClassName);
	DDX_Control(pDX, IDC_PICADDR, m_ctrPicAddr);
	DDX_Control(pDX, IDC_OPENFILE, m_btnOpenFile);
	DDX_Control(pDX, IDC_PPREVE, m_btnPPreve);
	DDX_Control(pDX, IDC_PNEXT, m_btnPNext);
	DDX_Control(pDX, IDC_PLAST, m_btnPLast);
	DDX_Control(pDX, IDC_PFIRST, m_btnPFirst);
	DDX_Control(pDX, IDC_SPECIFICATION, m_ctrSpecification);
	DDX_Control(pDX, IDC_TELEPHONE, m_ctrTelephone);
	DDX_Control(pDX, IDC_RESUME, m_ctrResume);
	DDX_Control(pDX, IDC_PROVIDE, m_ctrProvide);
	DDX_Control(pDX, IDC_PRODUCE, m_ctrProduce);
	DDX_Control(pDX, IDC_PRICE, m_ctrPrice);
	DDX_Control(pDX, IDC_PICTURE, m_ctrPicture);
	DDX_Control(pDX, IDC_NAME, m_ctrName);
	DDX_Control(pDX, IDC_LINKMAN, m_ctrLinkMan);
	DDX_Control(pDX, IDC_COMPANY, m_ctrCompany);
	DDX_Control(pDX, IDC_AMOUNT, m_ctrAmount);
	DDX_Control(pDX, IDC_ADDR, m_ctrAddr);
	DDX_Control(pDX, IDC_SHOWSIMP, m_btnShowSimp);
	DDX_Control(pDX, IDC_MODIFIRECODE, m_btnModify);
	DDX_Control(pDX, IDC_DELETE, m_btnDelete);
	DDX_Control(pDX, IDC_CANCER1, m_btnCancel);
	DDX_Control(pDX, IDC_ADDNEWP, m_btnAdd);
	DDX_Text(pDX, IDC_ADDR, m_Addr);
	DDV_MaxChars(pDX, m_Addr, 50);
	DDX_Text(pDX, IDC_AMOUNT, m_Amount);
	DDX_Text(pDX, IDC_COMPANY, m_Company);
	DDV_MaxChars(pDX, m_Company, 20);
	DDX_Text(pDX, IDC_LINKMAN, m_LinkMan);
	DDV_MaxChars(pDX, m_LinkMan, 10);
	DDX_Text(pDX, IDC_NAME, m_Name);
	DDV_MaxChars(pDX, m_Name, 30);
	DDX_Text(pDX, IDC_PRICE, m_Price);
	DDV_MaxChars(pDX, m_Price, 10);
	DDX_Text(pDX, IDC_PRODUCE, m_Produce);
	DDV_MaxChars(pDX, m_Produce, 50);
	DDX_Text(pDX, IDC_PROVIDE, m_Provide);
	DDV_MaxChars(pDX, m_Provide, 50);
	DDX_Text(pDX, IDC_RESUME, m_Resume);
	DDV_MaxChars(pDX, m_Resume, 100);
	DDX_Text(pDX, IDC_SPECIFICATION, m_Specification);
	DDV_MaxChars(pDX, m_Specification, 10);
	DDX_Text(pDX, IDC_TELEPHONE, m_Telephone);
	DDV_MaxChars(pDX, m_Telephone, 15);
	DDX_Text(pDX, IDC_PICADDR, m_strPicAddr);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPdtResultDetail, CDialog)
	//{{AFX_MSG_MAP(CPdtResultDetail)
	ON_BN_CLICKED(IDC_SHOWSIMP, OnShowsimp)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_BN_CLICKED(IDC_MODIFIRECODE, OnModifiRecode)
	ON_BN_CLICKED(IDC_ADDNEWP, OnAddnewp)
	ON_BN_CLICKED(IDC_CANCER1, OnCancel1)
	ON_BN_CLICKED(IDC_PFIRST, OnPfirst)
	ON_BN_CLICKED(IDC_PPREVE, OnPpreve)
	ON_BN_CLICKED(IDC_PNEXT, OnPnext)
	ON_BN_CLICKED(IDC_PLAST, OnPlast)
	ON_WM_SIZE()
	ON_BN_CLICKED(IDC_OPENFILE, OnOpenfile)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPdtResultDetail message handlers

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

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

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

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

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

	if(WindowText=="修改记录")
	{
		MackEditReadOnly(false);
		g_isPLocked=true;

		m_btnAdd.EnableWindow(false);
		m_btnDelete.EnableWindow(false);
		m_btnShowSimp.EnableWindow(false);
		m_btnCancel.EnableWindow(true);

		bPreveEnable=m_btnPPreve.IsWindowEnabled();
		bNextEnable=m_btnPNext.IsWindowEnabled();

		m_btnPFirst.EnableWindow(false);
		m_btnPPreve.EnableWindow(false);
		m_btnPNext.EnableWindow(false);
		m_btnPLast.EnableWindow(false);

		m_btnModify.SetWindowText("保存");

		m_ctrName.SetFocus();

		return;
	}
	else if(WindowText=="保存")
	{
		MackEditReadOnly(true);
		m_btnAdd.EnableWindow(true);
		m_btnDelete.EnableWindow(true);
		m_btnShowSimp.EnableWindow(true);
		m_btnCancel.EnableWindow(false);

		m_btnPFirst.EnableWindow(true);
		m_btnPPreve.EnableWindow(bPreveEnable);
		m_btnPNext.EnableWindow(false);
		m_btnPLast.EnableWindow(true);

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

void CPdtResultDetail::OnAddnewp() 
{
	// TODO: Add your control notification handler code here
	CString WindowText;
	m_btnAdd.GetWindowText(WindowText);
	
	if(WindowText=="添加记录")
	{
		EmptyEdit();
		MackEditReadOnly(false);
		g_isPLocked=true;

		m_btnModify.EnableWindow(false);
		m_btnDelete.EnableWindow(false);
		m_btnShowSimp.EnableWindow(false);
		m_btnCancel.EnableWindow(true);

		bPreveEnable=m_btnPPreve.IsWindowEnabled();
		bNextEnable=m_btnPNext.IsWindowEnabled();

		m_btnPFirst.EnableWindow(false);
		m_btnPPreve.EnableWindow(false);
		m_btnPNext.EnableWindow(false);
		m_btnPLast.EnableWindow(false);

		m_btnAdd.SetWindowText("保存");

		m_ctrName.SetFocus();
		
		return;
	}
	else if(WindowText=="保存")
	{
		MackEditReadOnly(true);
		m_btnModify.EnableWindow(true);
		m_btnDelete.EnableWindow(true);
		m_btnShowSimp.EnableWindow(true);
		m_btnCancel.EnableWindow(false);

		m_btnPFirst.EnableWindow(true);
		m_btnPPreve.EnableWindow(bPreveEnable);
		m_btnPNext.EnableWindow(false);
		m_btnPLast.EnableWindow(true);
		
		UpdateData(true);
		::SendMessage(GetParent()->m_hWnd,WM_RECORD_ADD,0,PDT_DETAIL);
		m_btnAdd.SetWindowText("添加记录");
	}
}

void CPdtResultDetail::OnCancel1() 
{
	// TODO: Add your control notification handler code here
	m_btnAdd.EnableWindow(true);
	m_btnModify.EnableWindow(true);
	m_btnDelete.EnableWindow(true);
	m_btnShowSimp.EnableWindow(true);
	m_btnCancel.EnableWindow(false);

	m_btnPFirst.EnableWindow(true);
	m_btnPPreve.EnableWindow(bPreveEnable);
	m_btnPNext.EnableWindow(bNextEnable);
	m_btnPLast.EnableWindow(true);

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

	MackEditReadOnly(true);
	g_isPLocked=false;
	
	if(m_nSetNum==0)
	{
		::SendMessage(GetParent()->m_hWnd,WM_CHANGEDIALOG,PDTSIMPLE,0);
	}
	else
	{
		::SendMessage(GetParent()->m_hWnd,WM_SHOW_PRO_RESULT_DETAIL,-1,-1);		
	}

}

void CPdtResultDetail::MackEditReadOnly(bool bReadOnly)
{
	m_ctrAddr.SetReadOnly(bReadOnly);
	m_ctrAmount.SetReadOnly(bReadOnly);

	m_cmbClassName.EnableWindow(!bReadOnly);

	m_ctrCompany.SetReadOnly(bReadOnly);
	m_ctrLinkMan.SetReadOnly(bReadOnly);
	m_ctrName.SetReadOnly(bReadOnly);
	m_ctrPrice.SetReadOnly(bReadOnly);
	m_ctrProduce.SetReadOnly(bReadOnly);
	m_ctrProvide.SetReadOnly(bReadOnly);
	m_ctrResume.SetReadOnly(bReadOnly);
	m_ctrSpecification.SetReadOnly(bReadOnly);
	m_ctrTelephone.SetReadOnly(bReadOnly);
	if(bReadOnly)
	{
		m_ctrPicAddr.ShowWindow(SW_HIDE);
		m_btnOpenFile.ShowWindow(SW_HIDE);
	}
	else
	{
		m_ctrPicAddr.ShowWindow(SW_SHOW);
		m_btnOpenFile.ShowWindow(SW_SHOW);
	}

}

BOOL CPdtResultDetail::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_btnAdd.SetShade(CShadeButtonST::SHS_METAL);
	m_btnDelete.SetShade(CShadeButtonST::SHS_METAL);
	m_btnModify.SetShade(CShadeButtonST::SHS_METAL);
	m_btnCancel.SetShade(CShadeButtonST::SHS_METAL);
	
	m_btnPFirst.SetShade(CShadeButtonST::SHS_METAL);
	m_btnPLast.SetShade(CShadeButtonST::SHS_METAL);
	m_btnPNext.SetShade(CShadeButtonST::SHS_METAL);
	m_btnPPreve.SetShade(CShadeButtonST::SHS_METAL);

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

	PRODUCTCLASS* temp=g_ProductClass->next;
	while(temp!=NULL)
	{
		m_cmbClassName.AddString(temp->classname);
		temp=temp->next;
	}

	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 CPdtResultDetail::EmptyEdit()
{
	m_Addr="";
	m_Amount="";
	m_Company="";
	m_LinkMan="";
	m_Name="";
	m_Price="";
	m_Produce="";
	m_Provide="";
	m_Resume="";
	m_Specification="";
	m_Telephone="";
	m_strPicAddr="";
	m_cmbClassName.SetCurSel(-1);
	m_ctrPicture.RemoveDib();
	
	UpdateData(FALSE);
}

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

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

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

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

void CPdtResultDetail::ModifyFromSimple(bool bNew)
{
	if(bNew)
		OnAddnewp();
	else
		OnModifiRecode();
}

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

void CPdtResultDetail::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);
	}
}


void CPdtResultDetail::OnOpenfile() 
{
	// TODO: Add your control notification handler code here
	static char  szFilter[255] = "BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*||";
	CFileDialog bmpDlg(true,"*.bmp",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);

	bmpDlg.m_ofn.nMaxCustFilter=255;

	if(bmpDlg.DoModal()==IDOK)
	{
		UpdateData(true);
		m_strPicAddr=bmpDlg.GetPathName();
		UpdateData(false);
		m_ctrPicture.RemoveDib();
		m_ctrPicture.LoadDib(m_strPicAddr);
	}
}

⌨️ 快捷键说明

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