📄 propadd2.cpp
字号:
// PropAdd2.cpp : implementation file
//
#include "stdafx.h"
#include "FileMaSys.h"
#include "PropAdd2.h"
#include "AddSheet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CFileMaSysApp theApp;
int CurrentItem; //双击时的当前项
/////////////////////////////////////////////////////////////////////////////
// CPropAdd2 property page
IMPLEMENT_DYNCREATE(CPropAdd2, CPropertyPage)
CPropAdd2::CPropAdd2() : CPropertyPage(CPropAdd2::IDD)
{
//{{AFX_DATA_INIT(CPropAdd2)
m_eFileLevel = 0;
m_eFileLoc = _T("");
m_eFileName = _T("");
m_eFileType = _T("");
m_eFileOwner = _T("");
m_cEFilePath = _T("");
//}}AFX_DATA_INIT
m_Loctrue=FALSE;
m_IDtrue=FALSE;
}
CPropAdd2::~CPropAdd2()
{
}
void CPropAdd2::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPropAdd2)
DDX_Control(pDX, IDC_EDIT_EFILEID, m_IDEditControl);
DDX_Control(pDX, IDC_BTN_OPENEFILE, m_BtnOpenControl);
DDX_Control(pDX, IDC_BTN_MODIFY, m_BtnModifyControl);
DDX_Control(pDX, IDC_BTN_DELETE, m_BtnDeleteControl);
DDX_Control(pDX, IDC_BTN_BROWSELOC, m_BtnBrowseControl);
DDX_Control(pDX, IDC_BTN_ADD, m_BtnAddControl);
DDX_Control(pDX, IDC_LIST_EFILEINFO, m_EFileInfoControl);
DDX_Text(pDX, IDC_EDIT_EFILELEVEL, m_eFileLevel);
DDX_Text(pDX, IDC_EDIT_EFILELOC, m_eFileLoc);
DDX_Text(pDX, IDC_EDIT_EFILENAME, m_eFileName);
DDX_Text(pDX, IDC_EDIT_EFILETYPE, m_eFileType);
DDX_CBString(pDX, IDC_COMBO_EFILEOWNER, m_eFileOwner);
DDX_Text(pDX, IDC_EDIT_EFILEPATH, m_cEFilePath);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPropAdd2, CPropertyPage)
//{{AFX_MSG_MAP(CPropAdd2)
ON_BN_CLICKED(IDC_BTN_ADD, OnBtnAdd)
ON_BN_CLICKED(IDC_BTN_BROWSELOC, OnBtnBrowseloc)
ON_BN_CLICKED(IDC_BTN_MODIFY, OnBtnModify)
ON_BN_CLICKED(IDC_BTN_DELETE, OnBtnDelete)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_EFILEINFO, OnDblclkListEfileinfo)
ON_EN_CHANGE(IDC_EDIT_EFILEID, OnChangeEditEfileid)
ON_WM_LBUTTONDOWN()
ON_EN_KILLFOCUS(IDC_EDIT_EFILELOC, OnKillfocusEditEfileloc)
ON_EN_CHANGE(IDC_EDIT_EFILELOC, OnChangeEditEfileloc)
ON_EN_KILLFOCUS(IDC_EDIT_EFILEID, OnKillfocusEditEfileid)
ON_BN_CLICKED(IDC_BTN_OPENEFILE, OnBtnOpenefile)
ON_NOTIFY(NM_CLICK, IDC_LIST_DIRCONTENT, OnClickListDir)
ON_EN_SETFOCUS(IDC_EDIT_EFILENAME, OnSetfocusEditEfilename)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPropAdd2 message handlers
//读取研发人员
BOOL CPropAdd2::OnSetActive()
{
// TODO: Add your specialized code here and/or call the base class
((CAddSheet *)GetParent())->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT );
CString sql,str;
sql="Select * From WorkerName";
m_RecordProName.CreateInstance("ADODB.Recordset");
m_RecordProName->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),
adOpenDynamic,adLockPessimistic,adCmdText);
CComboBox * pFileOwner=(CComboBox *)GetDlgItem(IDC_COMBO_EFILEOWNER);
while (!m_RecordProName->adEOF)
{
str=m_RecordProName->GetCollect("Name").bstrVal;
pFileOwner->AddString(str);
m_RecordProName->MoveNext();
}
//设置ID编辑框格式
m_IDEditControl.m_strLiteral = "___.___.___";
m_IDEditControl.m_str = "JU . . ";
m_IDEditControl.SetWindowText(m_IDEditControl.m_str);
//添加列表控件的列头
DWORD dwStyle;
dwStyle=m_EFileInfoControl.GetStyle();
dwStyle |=LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS ;
m_EFileInfoControl.SetExtendedStyle(dwStyle);
m_EFileInfoControl.SetBkColor(RGB(0xec,0xf1,0xfd));
m_EFileInfoControl.SetTextBkColor(RGB(0xfe,0xFF,0xc6));
//插入列表控件的列
m_EFileInfoControl.InsertColumn(0,"文件ID",LVCFMT_LEFT,120);
m_EFileInfoControl.InsertColumn(1,"文件名",LVCFMT_LEFT,120);
m_EFileInfoControl.InsertColumn(2,"类型",LVCFMT_LEFT,60);
m_EFileInfoControl.InsertColumn(3,"级数",LVCFMT_LEFT,40);
m_EFileInfoControl.InsertColumn(4,"所有者",LVCFMT_LEFT,100);
m_EFileInfoControl.InsertColumn(5,"文件位置",LVCFMT_LEFT,200);
//禁止修改按钮
m_BtnModifyControl.EnableWindow(FALSE);
// m_BtnDeleteControl.EnableWindow(FALSE);
//设置浏览文件夹按钮
m_BtnBrowseControl.SetIcon(IDI_ICON_FOLDER);
m_BtnBrowseControl.DrawTransparent(TRUE);
m_BtnBrowseControl.SetColor(CButtonST::BTNST_COLOR_FG_IN,RGB(255,0,0));
m_BtnBrowseControl.SetAlign(CButtonST::ST_ALIGN_HORIZ);
//设置打开文件按钮
m_BtnOpenControl.SetIcon(IDI_ICON_FOLDER);
m_BtnOpenControl.DrawTransparent(TRUE);
m_BtnOpenControl.SetColor(CButtonST::BTNST_COLOR_FG_IN,RGB(255,0,0));
m_BtnOpenControl.SetAlign(CButtonST::ST_ALIGN_HORIZ);
//设置添加按钮
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 CPropAdd2::OnBtnAdd()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_IDEditControl.GetWindowText(m_eFileID);
if (m_Loctrue && m_IDtrue)
{
int count=m_eFileArray.GetSize();
for (int i=0;i<count;i++)
{
if (((EFILEHEADER *)m_eFileArray[i])->eFileID==m_eFileID)
{
MessageBox("ID重复");
return ;
}
}
EFILEHEADER * FileHeader=new EFILEHEADER;
FileHeader->eFileID=m_eFileID;
FileHeader->eFileName=m_eFileName;
FileHeader->eFileLoc=m_eFileLoc;
FileHeader->eFileType=m_eFileType;
FileHeader->eFileOwner=m_eFileOwner;
FileHeader->eFileLevel=m_eFileLevel;
m_eFileArray.Add(FileHeader);
//添加电子文件信息到列表控件中
m_EFileInfoControl.InsertItem(count," ");
m_EFileInfoControl.SetItemText(count,0,m_eFileID);
m_EFileInfoControl.SetItemText(count,1,m_eFileName);
m_EFileInfoControl.SetItemText(count,2,m_eFileType);
CString str;
str.Format("%d",m_eFileLevel);
m_EFileInfoControl.SetItemText(count,3,str);
m_EFileInfoControl.SetItemText(count,4,m_eFileOwner);
m_EFileInfoControl.SetItemText(count,5,m_eFileLoc);
MessageBox("添加成功");
}
else
{
MessageBox("文件目录位置不正确或者ID重复");
}
}
//创建路径选择对话框
void CPropAdd2::OnBtnBrowseloc()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char Buffer[100];
ZeroMemory(Buffer,100);
BROWSEINFO bi;
bi.hwndOwner=this->m_hWnd;
bi.pidlRoot=NULL;
bi.pszDisplayName=Buffer;
bi.lpszTitle="选择路径";
bi.ulFlags=BIF_RETURNFSANCESTORS;
bi.lpfn=NULL;
bi.iImage=0;
LPITEMIDLIST pIdlist=SHBrowseForFolder(&bi);
if (pIdlist)
{
SHGetPathFromIDList(pIdlist,Buffer);
m_eFileLoc=Buffer;
UpdateData(FALSE);
}
UpdateData(TRUE);
m_Loctrue=TRUE;
// CreateDirList(GetDlgItem(IDC_EDIT_EFILELOC),m_DirList);
}
//双击获得此项的相关信息 进行修改
void CPropAdd2::OnBtnModify()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
// int i=m_ListFileInfo.GetCurSel();
// m_ListFileInfo.DeleteString(i);
// m_eFileArray.RemoveAt(i);
int count=m_eFileArray.GetSize();
for (int j=0;j<count;j++)
{
//修改的ID在阵列中没有重复的
if ((((EFILEHEADER *)m_eFileArray[j])->eFileID==m_eFileID)&& (j!=CurrentItem))
{
MessageBox("ID重复");
return ;
}
}
//修改数组中的值
EFILEHEADER * FileHeader=(EFILEHEADER *)m_eFileArray[CurrentItem];
FileHeader->eFileID=m_eFileID;
FileHeader->eFileName=m_eFileName;
FileHeader->eFileLoc=m_eFileLoc;
FileHeader->eFileType=m_eFileType;
FileHeader->eFileOwner=m_eFileOwner;
FileHeader->eFileLevel=m_eFileLevel;
//修改列表控件中的值
m_EFileInfoControl.SetItemText(CurrentItem,0,m_eFileID);
m_EFileInfoControl.SetItemText(CurrentItem,1,m_eFileName);
m_EFileInfoControl.SetItemText(CurrentItem,2,m_eFileType);
CString str;
str.Format("%d",m_eFileLevel);
m_EFileInfoControl.SetItemText(CurrentItem,3,str);
m_EFileInfoControl.SetItemText(CurrentItem,4,m_eFileOwner);
m_EFileInfoControl.SetItemText(CurrentItem,5,m_eFileLoc);
MessageBox("修改成功");
m_BtnModifyControl.EnableWindow(FALSE);
// m_eFileArray.InsertAt(i,FileHeader);
/* CString str,str1;
str+=m_eFileID;
str+=" ";
str+=m_eFileName;
str+=" ";
str+=m_eFileType;
str+=" ";
str+=m_eFileOwner;
str+=" ";
str1.Format("%d",m_eFileLevel);
str+=str1;
str+=" ";
str+=m_eFileLoc;
m_ListFileInfo.InsertString(i,str);*/
}
void CPropAdd2::OnBtnDelete()
{
// TODO: Add your control notification handler code here
// int i=m_ListFileInfo.GetCurSel();
// m_ListFileInfo.DeleteString(i);
POSITION pos=m_EFileInfoControl.GetFirstSelectedItemPosition();
if (pos!=NULL)
{
CurrentItem=m_EFileInfoControl.GetNextSelectedItem(pos);
m_EFileInfoControl.DeleteItem(CurrentItem);
m_eFileArray.RemoveAt(CurrentItem);
MessageBox("删除成功");
}
}
//双击获得此项的相关信息 进行修改
void CPropAdd2::OnDblclkListEfileinfo(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos=m_EFileInfoControl.GetFirstSelectedItemPosition();
CurrentItem=m_EFileInfoControl.GetNextSelectedItem(pos);
EFILEHEADER * pFileHeader=(EFILEHEADER *)m_eFileArray[CurrentItem];
m_eFileID=pFileHeader->eFileID;
m_eFileName=pFileHeader->eFileName;
m_eFileType=pFileHeader->eFileType;
m_eFileLevel=pFileHeader->eFileLevel;
m_eFileOwner=pFileHeader->eFileOwner;
m_eFileLoc=pFileHeader->eFileLoc;
UpdateData(FALSE);
m_IDEditControl.SetWindowText(m_eFileID);
m_BtnModifyControl.EnableWindow(TRUE);
// m_BtnDeleteControl.EnableWindow(TRUE);
*pResult = 0;
}
//DEL void CPropAdd2::OnItemdblclickListEfileinfo(NMHDR* pNMHDR, LRESULT* pResult)
//DEL {
//DEL HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
//DEL // TODO: Add your control notification handler code here
//DEL // CurrentItem=m_EFileInfoControl.GetSelectedCount();
//DEL CurrentItem=m_EFileInfoControl.GetHotItem();
//DEL EFILEHEADER * pFileHeader=(EFILEHEADER *)m_eFileArray[CurrentItem];
//DEL m_eFileID=pFileHeader->eFileID;
//DEL m_eFileName=pFileHeader->eFileName;
//DEL m_eFileType=pFileHeader->eFileType;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -