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

📄 propadd2.cpp

📁 用Visual C++ 开发的项目管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -