📄 pdtresultdetail.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 + -