📄 propadd3.cpp
字号:
// propAdd3.cpp : implementation file
//
#include "stdafx.h"
#include "FileMaSys.h"
#include "propAdd3.h"
#include "AddSheet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CFileMaSysApp theApp;
int FCurrentItem;
/////////////////////////////////////////////////////////////////////////////
// CpropAdd3 property page
IMPLEMENT_DYNCREATE(CpropAdd3, CPropertyPage)
CpropAdd3::CpropAdd3() : CPropertyPage(CpropAdd3::IDD)
{
//{{AFX_DATA_INIT(CpropAdd3)
m_FileID = _T("");
m_FileName = _T("");
m_FileRemark = _T("");
m_FileCount = 0;
//}}AFX_DATA_INIT
m_IDtrue=FALSE;
m_font.CreatePointFont(100,"新宋体");
}
CpropAdd3::~CpropAdd3()
{
}
void CpropAdd3::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CpropAdd3)
DDX_Control(pDX, IDC_BTN_MODIFY, m_BtnModifyControl);
DDX_Control(pDX, IDC_BTN_DELETE, m_BtnDeleteControl);
DDX_Control(pDX, IDC_BTN_ADD, m_BtnAddControl);
DDX_Control(pDX, IDC_LIST_FILEINFO, m_FileInfoControl);
DDX_Text(pDX, IDC_EDIT_FILEID, m_FileID);
DDX_Text(pDX, IDC_EDIT_FILENAME, m_FileName);
DDX_Text(pDX, IDC_EDIT_FILEREMARK, m_FileRemark);
DDX_Text(pDX, IDC_EDIT_FILECOUNT, m_FileCount);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CpropAdd3, CPropertyPage)
//{{AFX_MSG_MAP(CpropAdd3)
ON_BN_CLICKED(IDC_BTN_ADD, OnBtnAdd)
ON_BN_CLICKED(IDC_BTN_MODIFY, OnBtnModify)
ON_BN_CLICKED(IDC_BTN_DELETE, OnBtnDelete)
ON_EN_KILLFOCUS(IDC_EDIT_FILEID, OnKillfocusEditFileid)
ON_EN_KILLFOCUS(IDC_EDIT_FILENAME, OnKillfocusEditFilename)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_FILEINFO, OnDblclkListFileinfo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CpropAdd3 message handlers
BOOL CpropAdd3::OnSetActive()
{
// TODO: Add your specialized code here and/or call the base class
((CAddSheet *)GetParent())->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT );
//添加列表控件的列头
DWORD dwStyle;
dwStyle=m_FileInfoControl.GetStyle();
dwStyle |=LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS ;
m_FileInfoControl.SetExtendedStyle(dwStyle);
m_FileInfoControl.SetBkColor(RGB(0xec,0xf1,0xfd));
m_FileInfoControl.SetTextBkColor(RGB(0xfe,0xFF,0xc6));
//插入列表控件的列
m_FileInfoControl.InsertColumn(0,"文件ID",LVCFMT_LEFT,120);
m_FileInfoControl.InsertColumn(1,"文件名",LVCFMT_LEFT,120);
m_FileInfoControl.InsertColumn(2,"数量",LVCFMT_LEFT,60);
m_FileInfoControl.InsertColumn(3,"可借数量",LVCFMT_LEFT,60);
m_FileInfoControl.InsertColumn(4,"说明",LVCFMT_LEFT,200);
//禁止修改按钮
m_BtnModifyControl.EnableWindow(FALSE);
//设置添加按钮
m_BtnAddControl.SetIcon(IDI_ICON_ADD);
m_BtnAddControl.DrawTransparent(TRUE);
m_BtnAddControl.SetColor(CButtonST::BTNST_COLOR_FG_IN,RGB(255,0,0));
m_BtnAddControl.SetAlign(CButtonST::ST_ALIGN_HORIZ);
//设置修改按钮
m_BtnModifyControl.SetIcon(IDI_ICON_MODIFY);
m_BtnModifyControl.DrawTransparent(TRUE);
m_BtnModifyControl.SetColor(CButtonST::BTNST_COLOR_FG_IN,RGB(255,0,0));
m_BtnModifyControl.SetAlign(CButtonST::ST_ALIGN_HORIZ);
//设置删除按钮
m_BtnDeleteControl.SetIcon(IDI_ICON_DELETE);
m_BtnDeleteControl.DrawTransparent(TRUE);
m_BtnDeleteControl.SetColor(CButtonST::BTNST_COLOR_FG_IN,RGB(255,0,0));
m_BtnDeleteControl.SetAlign(CButtonST::ST_ALIGN_HORIZ);
return CPropertyPage::OnSetActive();
}
//添加文件档案到列表框中
void CpropAdd3::OnBtnAdd()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if (m_IDtrue && m_Nametrue)
{
int count=m_FileArray.GetSize();
for (int i=0;i<count;i++)
{
if (((FILEHEADER *)m_FileArray[i])->FileID==m_FileID)
{
MessageBox("ID重复");
return ;
}
else if (((FILEHEADER *)m_FileArray[i])->FileName==m_FileName)
{
MessageBox("名字重复");
return ;
}
}
FILEHEADER *FileHeader=new FILEHEADER;
FileHeader->FileID=m_FileID;
FileHeader->FileName=m_FileName;
FileHeader->FileCount=m_FileCount;
FileHeader->LendCount=m_FileCount;
FileHeader->FileRemark=m_FileRemark;
m_FileArray.Add(FileHeader);
//添加电子文件信息到列表控件中
m_FileInfoControl.InsertItem(count," ");
m_FileInfoControl.SetItemText(count,0,m_FileID);
m_FileInfoControl.SetItemText(count,1,m_FileName);
CString str;
str.Format("%d",m_FileCount);
m_FileInfoControl.SetItemText(count,2,str);
m_FileInfoControl.SetItemText(count,3,str);
m_FileInfoControl.SetItemText(count,4,m_FileRemark);
MessageBox("添加成功");
/* CString str,str1;
str+=m_FileID;
str+=" ";
str+=m_FileName;
str+=" ";
str1.Format("%d",m_FileCount);
str+=str1;
str+=" ";
str+=m_FileRemark;
m_FileInfo.AddString(str);*/
}
else
{
MessageBox("文件ID或者名字已经存在");
}
}
//修改列表框中已经添加的项目
void CpropAdd3::OnBtnModify()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int count=m_FileArray.GetSize();
for (int j=0;j<count;j++)
{
//修改的ID在阵列中没有重复的
if ((((FILEHEADER *)m_FileArray[j])->FileID==m_FileID)&&(j!=FCurrentItem))
{
MessageBox("ID重复");
return ;
}
else if ((((FILEHEADER *)m_FileArray[j])->FileName==m_FileName)&&(j!=FCurrentItem))
{
MessageBox("名字重复");
return ;
}
}
//修改数组中的值
FILEHEADER * FileHeader=(FILEHEADER*)m_FileArray[FCurrentItem];
FileHeader->FileID=m_FileID;
FileHeader->FileName=m_FileName;
FileHeader->FileCount=m_FileCount;
FileHeader->FileRemark=m_FileRemark;
//修改列表控件中的值
m_FileInfoControl.SetItemText(count,0,m_FileID);
m_FileInfoControl.SetItemText(count,1,m_FileName);
CString str;
str.Format("%d",m_FileCount);
m_FileInfoControl.SetItemText(count,2,str);
m_FileInfoControl.SetItemText(count,3,str);
m_FileInfoControl.SetItemText(count,4,m_FileRemark);
MessageBox("修改成功");
m_BtnModifyControl.EnableWindow(FALSE);
/* int i=m_FileInfo.GetCurSel();
m_FileInfo.DeleteString(i);
m_FileArray.RemoveAt(i);
int count=m_FileArray.GetSize();
for (int j=0;j<count;j++)
{
if (((FILEHEADER *)m_FileArray[j])->FileID==m_FileID)
{
MessageBox("ID重复");
return ;
}
else if (((FILEHEADER *)m_FileArray[i])->FileName==m_FileName)
{
MessageBox("名字重复");
return ;
}
}
FILEHEADER * FileHeader=new FILEHEADER;
FileHeader->FileID=m_FileID;
FileHeader->FileName=m_FileName;
FileHeader->FileCount=m_FileCount;
FileHeader->FileRemark=m_FileRemark;
m_FileArray.InsertAt(i,FileHeader);*/
/* CString str,str1;
str+=m_FileID;
str+=" ";
str+=m_FileName;
str+=" ";
str1.Format("%d",m_FileCount);
str+=str1;
str+=" ";
str+=m_FileRemark;
m_FileInfo.InsertString(i,str);*/
}
void CpropAdd3::OnBtnDelete()
{
// TODO: Add your control notification handler code here
/* int i=m_FileInfo.GetCurSel();
m_FileInfo.DeleteString(i);
m_FileArray.RemoveAt(i);*/
POSITION pos=m_FileInfoControl.GetFirstSelectedItemPosition();
if (pos!=NULL)
{
FCurrentItem=m_FileInfoControl.GetNextSelectedItem(pos);
m_FileInfoControl.DeleteItem(FCurrentItem);
m_FileArray.RemoveAt(FCurrentItem);
MessageBox("删除成功");
}
}
//判断档案文件ID是否在数据库中存在
void CpropAdd3::OnKillfocusEditFileid()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString str1("文件ID已经存在");
CString str2("文件ID不能为空");
CString str3("文件ID可以使用");
HICON iconError=(HICON)LoadImage(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_ICON_ERROR),
IMAGE_ICON,16,16,LR_DEFAULTCOLOR);
HICON iconRight=(HICON)LoadImage(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_ICON_RIGHT),
IMAGE_ICON,16,16,LR_DEFAULTCOLOR);
if (!m_FileID.IsEmpty())
{
CString sql="select FileID From FileTable Where FileID='"+m_FileID+"' ";
m_RecordInfo.CreateInstance("ADODB.Recordset");
m_RecordInfo->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),
adOpenDynamic,adLockOptimistic,adCmdText);
if (m_RecordInfo->GetRecordCount()!=0)
{
m_IDtrue=FALSE;
CreateStaticIconText(GetDlgItem(IDC_EDIT_FILEID),str1,iconError,m_IconStatic,m_TextStatic);
}
else
{
m_IDtrue=TRUE;
CreateStaticIconText(GetDlgItem(IDC_EDIT_FILEID),str3,iconRight,m_IconStatic,m_TextStatic);
}
m_RecordInfo->Close();
}
else
{
m_IDtrue=FALSE;
CreateStaticIconText(GetDlgItem(IDC_EDIT_FILEID),str2,iconError,m_IconStatic,m_TextStatic);
}
}
//判断档案文件名称是否在数据库中存在
void CpropAdd3::OnKillfocusEditFilename()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString str1("文件名称已经存在");
CString str2("文件名称不能为空");
CString str3("文件名称可以使用");
HICON iconError=(HICON)LoadImage(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_ICON_ERROR),
IMAGE_ICON,16,16,LR_DEFAULTCOLOR);
HICON iconRight=(HICON)LoadImage(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_ICON_RIGHT),
IMAGE_ICON,16,16,LR_DEFAULTCOLOR);
if (!m_FileName.IsEmpty())
{
CString sql="select FileName From FileTable Where FileName='"+m_FileName+"' ";
m_RecordInfo.CreateInstance("ADODB.Recordset");
m_RecordInfo->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),
adOpenDynamic,adLockOptimistic,adCmdText);
if (m_RecordInfo->GetRecordCount()!=0)
{
m_Nametrue=FALSE;
CreateStaticIconText(GetDlgItem(IDC_EDIT_FILENAME),str1,iconError,m_NameIcon,m_NameText);
}
else
{
m_Nametrue=TRUE;
CreateStaticIconText(GetDlgItem(IDC_EDIT_FILENAME),str3,iconRight,m_NameIcon,m_NameText);
}
m_RecordInfo->Close();
}
else
{
m_Nametrue=FALSE;
CreateStaticIconText(GetDlgItem(IDC_EDIT_FILENAME),str2,iconError,m_NameIcon,m_NameText);
}
}
void CpropAdd3::OnDblclkListFileinfo(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos=m_FileInfoControl.GetFirstSelectedItemPosition();
FCurrentItem=m_FileInfoControl.GetNextSelectedItem(pos);
FILEHEADER * pFileHeader=(FILEHEADER *)m_FileArray[FCurrentItem];
m_FileID=pFileHeader->FileID;
m_FileName=pFileHeader->FileName;
m_FileCount=pFileHeader->FileCount;
m_FileRemark=pFileHeader->FileRemark;
UpdateData(FALSE);
m_BtnModifyControl.EnableWindow(TRUE);
*pResult = 0;
}
void CpropAdd3::CreateStaticIconText(CWnd *Control, CString str, HICON &Icon, CStatic &StaticIcon, CStatic &StaticText)
{
CRect rectControl,rectIcon,rectText;
Control->GetWindowRect(&rectControl);
rectIcon.top=rectControl.top;
rectIcon.bottom=rectControl.bottom;
rectIcon.left=rectControl.right;
rectIcon.right=rectIcon.left+20;
rectText.top=rectIcon.top;
rectText.bottom=rectIcon.bottom;
rectText.left=rectIcon.right;
rectText.right=rectText.left+120;
ScreenToClient(&rectIcon);
ScreenToClient(&rectText);
//设置静态控件为图标格式
if (StaticIcon.m_hWnd!=NULL)
{
StaticIcon.DestroyWindow();
StaticIcon.Create(" ",WS_VISIBLE | WS_CHILD |SS_ICON |SS_CENTERIMAGE ,rectIcon,this);
StaticIcon.SetIcon(Icon);
}
else
{
StaticIcon.Create(" ",WS_VISIBLE | WS_CHILD |SS_ICON |SS_CENTERIMAGE ,rectIcon,this);
StaticIcon.SetIcon(Icon);
}
//动态生成文本静态控件
if (StaticText.m_hWnd!=NULL)
{
StaticText.DestroyWindow();
StaticText.Create(str,WS_VISIBLE | WS_CHILD | SS_CENTERIMAGE ,rectText,this);
StaticText.SetFont(&m_font,TRUE);
}
else
{
StaticText.Create(str,WS_VISIBLE | WS_CHILD | SS_CENTERIMAGE ,rectText,this);
StaticText.SetFont(&m_font,TRUE);
}
}
LRESULT CpropAdd3::OnWizardNext()
{
// TODO: Add your specialized code here and/or call the base class
return CPropertyPage::OnWizardNext();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -