MFC管理系统

登录

设置登录界面

在这里插入图片描述
初始化窗口实列
在这里插入图片描述添加控件变量
在这里插入图片描述

登录用户判断

void CLoginDlg::OnBnClickedBtnLogin()
{
	UpdateData(TRUE);
	if (m_strUsername.IsEmpty() || m_strPassword.IsEmpty())
	{
		MessageBox(L"用户名或者密码为空", L"提示");
		return;
	}

	if (m_strUsername == L"admin" && m_strPassword == L"123456")
	{
		//成功
		EndDialog(IDOK);
	}
	else
	{
		MessageBox(_T("登陆失败"), L"提示");
		return;
	}

}

请添加图片描述

界面设计

在这里插入图片描述

嵌入对话框

在这里插入图片描述
在这里插入图片描述

CFrameDlg m_frameDlg;
BOOL CStudentSystemDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	m_frameDlg.Create(IDD_FRAME_DLG,this);
	//获取客户去的宽和高
	CRect rect;
	GetClientRect(&rect);

	m_frameDlg.MoveWindow(100, 90, rect.Width()-150, rect.Height()-150);
	m_frameDlg.ShowWindow(SW_SHOW);

	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

在这里插入图片描述

WM_SIZE 消息设置窗口大小变化

void CStudentSystemDlg::OnSize(UINT nType, int cx, int cy)
{
	CDialogEx::OnSize(nType, cx, cy);

	if (m_frameDlg.GetSafeHwnd())
	{
		//获取客户去的宽和高
		CRect rect;
		GetClientRect(&rect);
		m_frameDlg.MoveWindow(100, 90, rect.Width() - 150, rect.Height() - 150);
	}
}

请添加图片描述

添加列表

在这里插入图片描述
在这里插入图片描述

初始化列表

BOOL CFrameDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);//拓展风格
	m_list.InsertColumn(0, L"工号", LVCFMT_LEFT, 100);
	m_list.InsertColumn(1, L"姓名", LVCFMT_LEFT, 100);
	m_list.InsertColumn(2, L"性别", LVCFMT_LEFT, 100);
	m_list.InsertColumn(3, L"年龄", LVCFMT_LEFT, 100);
	m_list.InsertColumn(4, L"兴趣爱好", LVCFMT_LEFT, 100);
	m_list.InsertColumn(5, L"部门", LVCFMT_LEFT, 100);
	m_list.InsertColumn(6, L"职位", LVCFMT_LEFT, 100);
	m_list.InsertColumn(7, L"试用薪资", LVCFMT_LEFT, 100);
	m_list.InsertColumn(8, L"转正薪资", LVCFMT_LEFT, 100);
	m_list.InsertColumn(9, L"入职时间", LVCFMT_LEFT, 100);
	m_list.InsertColumn(10, L"转正时间", LVCFMT_LEFT, 100);
	m_list.InsertColumn(11, L"离职时间", LVCFMT_LEFT, 100);
	m_list.InsertColumn(12, L"联系电话", LVCFMT_LEFT, 100);
	m_list.InsertColumn(13, L"家庭住址", LVCFMT_LEFT, 100);
	return TRUE;  
}

在这里插入图片描述

WM_SIZE 消息设置列表大小

void CFrameDlg::OnSize(UINT nType, int cx, int cy)
{
	CDialogEx::OnSize(nType, cx, cy);

	if (m_list.GetSafeHwnd())
	{
		m_list.MoveWindow(0,0,cx,cy);
	}
}

添加员工

添加员工对话框
在这里插入图片描述
添加类
在这里插入图片描述> 添加控件变量
在这里插入图片描述

设置按钮

//添加员工
void CStudentSystemDlg::OnBnClickedBtnAdd()
{
	CAddDlg dlg;
	if (IDCANCEL == dlg.DoModal())
	{
		return;
	}
}

请添加图片描述

添加下拉框内容

BOOL CAddDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	M_department.AddString(L"研发部");
	M_department.AddString(L"人事部");
	M_department.AddString(L"行政部");
	M_department.AddString(L"财务部");
	M_department.AddString(L"销售部");
	M_department.SetCurSel(0);
	m_position.AddString(L"C++");
	m_position.AddString(L"Java");
	m_position.AddString(L"人事专员");
	m_position.AddString(L"行政专员");
	m_position.AddString(L"会计");
	m_position.AddString(L"销售经理");
	m_position.SetCurSel(0);
	return TRUE; 
}

请添加图片描述

添加按钮

判断工号是否为空

//添加
void CAddDlg::OnBnClickedBtnAdd()
{
	
	//判断工号
	UpdateData(TRUE);
	if (m_nWorkNum.IsEmpty() || m_strName.IsEmpty())
	{
		MessageBox(L"请先填写工号或者姓名");
		return;
	}
	//获取到下拉框的值
	CString str;
	M_department.GetWindowText(str);
	m_strDepartment = str;

	
	m_position.GetWindowText(str);
	m_strPosition = str;


	//添加玩后关闭窗口
	EndDialog(IDOK);
}

请添加图片描述

完成添加员工

//添加员工
void CStudentSystemDlg::OnBnClickedBtnAdd()
{
	CAddDlg dlg;
	if (IDCANCEL == dlg.DoModal())
	{
		return;
	}


	//获取列表总函数
	int nCount = this->m_frameDlg.m_list.GetItemCount();
	//工号数据添加到列表中
	//CString str;
	//str.Format(L"%0.5d", dlg.m_nWorkNum);
	this->m_frameDlg.m_list.InsertItem(nCount, dlg.m_nWorkNum);

	//姓名插入
	this->m_frameDlg.m_list.SetItemText(nCount, 1, dlg.m_strName);

	//性别
	CString strSex = dlg.m_nSex ==1? L"女" : L"男";//如果是1就是女,是0就是男
	this->m_frameDlg.m_list.SetItemText(nCount, 2, strSex);

	//年龄
	CString str;
	//str.Format(L"%0.5d", dlg.m_nAge);
	this->m_frameDlg.m_list.SetItemText(nCount, 3, dlg.m_nAge);

	//兴趣
	str.Empty();
	if (dlg.m_bClimb)
		str += L"爬山;";
	if (dlg.m_bKsing)
		str += "唱歌;";
	if (dlg.m_bPlay)
		str += "打游戏;";
	if (dlg.m_bRead)
		str += "读书;";
	this->m_frameDlg.m_list.SetItemText(nCount, 4, str);

	//部门
	this->m_frameDlg.m_list.SetItemText(nCount, 5,dlg.m_strDepartment);

	//职位
	this->m_frameDlg.m_list.SetItemText(nCount, 6, dlg.m_strPosition);

	//试用薪资
	str.Format(L"%.2f", dlg.m_fTempsalary);
	this->m_frameDlg.m_list.SetItemText(nCount, 7, str);
	//转正薪资
	str.Format(L"%.2f", dlg.m_fTempsalary);
	this->m_frameDlg.m_list.SetItemText(nCount, 8, str);

	//入职时间
	str = dlg.m_joinTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nCount, 9, str);

	//转正时间
	str = dlg.m_officialTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nCount, 10, str);

	str = dlg.m_leaveTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nCount, 11, str);

	//联系电话
	this->m_frameDlg.m_list.SetItemText(nCount, 12, dlg.m_tel);

	//家庭住址

	this->m_frameDlg.m_list.SetItemText(nCount, 13, dlg.m_strAddress);
}

请添加图片描述

删除员工

//删除
void CStudentSystemDlg::OnBnClickedBtnDelete()
{
	POSITION pos=m_frameDlg.m_list.GetFirstSelectedItemPosition();//获取删除位置
	int nSel=m_frameDlg.m_list.GetNextSelectedItem(pos);//获取选中
	if (nSel < 0)//没有选
	{
		MessageBox(L"请您选中之后在删除");
		return;
	}
	m_frameDlg.m_list.DeleteItem(nSel);

	//删除所有
	//m_frameDlg.m_list.DeleteAllItems();

}

修改员工信息

做一个和添加一样的对话框
在这里插入图片描述添加类
在这里插入图片描述

修改

//修改
void CModifyDlg::OnBnClickedBtnModify()
{
	//判断工号
	UpdateData(TRUE);
	if (m_nWorkNum.IsEmpty() || m_strName.IsEmpty())
	{
		MessageBox(L"请先填写工号或者姓名");
		return;
	}
	//获取到下拉框的值
	CString str;
	M_department.GetWindowText(str);
	m_strDepartment = str;


	m_position.GetWindowText(str);
	m_strPosition = str;


	//添加玩后关闭窗口
	EndDialog(IDOK);
}

初始化

BOOL CModifyDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	M_department.AddString(L"研发部");
	M_department.AddString(L"人事部");
	M_department.AddString(L"行政部");
	M_department.AddString(L"财务部");
	M_department.AddString(L"销售部");
	
	m_position.AddString(L"C++");
	m_position.AddString(L"Java");
	m_position.AddString(L"人事专员");
	m_position.AddString(L"行政专员");
	m_position.AddString(L"会计");
	m_position.AddString(L"销售经理");
	


	M_department.SetWindowText(m_strDepartment);
	m_position.SetWindowText(m_strPosition);
	return TRUE;
}

完成修改员工

//修改
void CStudentSystemDlg::OnBnClickedBtnModify()
{
	//选中
	POSITION pos = m_frameDlg.m_list.GetFirstSelectedItemPosition();//获取删除位置
	int nSel = m_frameDlg.m_list.GetNextSelectedItem(pos);//获取选中
	if (nSel < 0)//没有选
	{
		MessageBox(L"请您选中之后在修改");
		return;
	}
	
	//读取数据
	CModifyDlg dlg;
	dlg.m_nWorkNum = m_frameDlg.m_list.GetItemText(nSel,0);
	dlg.m_strName = m_frameDlg.m_list.GetItemText(nSel, 1);

	//性别
	if (m_frameDlg.m_list.GetItemText(nSel, 2) == L"男")
		dlg.m_nSex = 0;
	else
		dlg.m_nSex = 1;
	dlg.m_nAge = m_frameDlg.m_list.GetItemText(nSel, 3);
	//兴趣爱好
	dlg.m_bClimb = FALSE;
	dlg.m_bPlay = FALSE;
	dlg.m_bKsing = FALSE;
	dlg.m_bRead = FALSE;
	CString strInterset= m_frameDlg.m_list.GetItemText(nSel, 4);
	if (strInterset.Find(L"打游戏") != -1)
	{
		dlg.m_bPlay = TRUE;
	}
	if (strInterset.Find(L"爬山") != -1)
	{
		dlg.m_bClimb = TRUE;
	}
	if (strInterset.Find(L"唱歌") != -1)
	{
		dlg.m_bKsing = TRUE;
	}
	if (strInterset.Find(L"读书") != -1)
	{
		dlg.m_bRead = TRUE;
	}
	
	//部门
	dlg.m_strDepartment = m_frameDlg.m_list.GetItemText(nSel, 5);
	//设置部门显示
	//dlg.M_department.SetWindowText(dlg.m_strDepartment);

	//职位
	dlg.m_strPosition= m_frameDlg.m_list.GetItemText(nSel, 6);
	//dlg.m_position.SetWindowText(dlg.m_strPosition);

	dlg.m_fTempsalary= _wtof(m_frameDlg.m_list.GetItemText(nSel, 7));

	dlg.m_fFormalsalary= _wtof(m_frameDlg.m_list.GetItemText(nSel, 8));

	//入职时间
	dlg.m_joinTime.ParseDateTime(m_frameDlg.m_list.GetItemText(nSel, 9));//时间字符串转换
	dlg.m_officialTime.ParseDateTime(m_frameDlg.m_list.GetItemText(nSel, 10));//时间字符串转换
	dlg.m_leaveTime.ParseDateTime(m_frameDlg.m_list.GetItemText(nSel, 11));//时间字符串转换
	dlg.m_tel = m_frameDlg.m_list.GetItemText(nSel, 12);
	dlg.m_strAddress = m_frameDlg.m_list.GetItemText(nSel, 12);

	if (IDCANCEL == dlg.DoModal())
	{
		return;
	}

	//m_frameDlg.m_list.DeleteItem(nSel);

	//工号数据添加到列表中
	//CString str;
	//str.Format(L"%0.5d", dlg.m_nWorkNum);
	this->m_frameDlg.m_list.SetItemText(nSel,0, dlg.m_nWorkNum);

	//姓名插入
	this->m_frameDlg.m_list.SetItemText(nSel, 1, dlg.m_strName);

	//性别
	CString strSex = dlg.m_nSex == 1 ? L"女" : L"男";//如果是1就是女,是0就是男
	this->m_frameDlg.m_list.SetItemText(nSel, 2, strSex);

	//年龄
	CString str;
	//str.Format(L"%0.5d", dlg.m_nAge);
	this->m_frameDlg.m_list.SetItemText(nSel, 3, dlg.m_nAge);

	//兴趣
	str.Empty();
	if (dlg.m_bClimb)
		str += L"爬山;";
	if (dlg.m_bKsing)
		str += "唱歌;";
	if (dlg.m_bPlay)
		str += "打游戏;";
	if (dlg.m_bRead)
		str += "读书;";
	this->m_frameDlg.m_list.SetItemText(nSel, 4, str);

	//部门
	this->m_frameDlg.m_list.SetItemText(nSel, 5, dlg.m_strDepartment);

	//职位
	this->m_frameDlg.m_list.SetItemText(nSel, 6, dlg.m_strPosition);

	//试用薪资
	str.Format(L"%.2f", dlg.m_fTempsalary);
	this->m_frameDlg.m_list.SetItemText(nSel, 7, str);
	//转正薪资
	str.Format(L"%.2f", dlg.m_fTempsalary);
	this->m_frameDlg.m_list.SetItemText(nSel, 8, str);

	//入职时间
	str = dlg.m_joinTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nSel, 9, str);

	//转正时间
	str = dlg.m_officialTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nSel, 10, str);

	str = dlg.m_leaveTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nSel, 11, str);

	//联系电话
	this->m_frameDlg.m_list.SetItemText(nSel, 12, dlg.m_tel);

	//家庭住址

	this->m_frameDlg.m_list.SetItemText(nSel, 13, dlg.m_strAddress);

}

请添加图片描述

保存数据

在这里插入图片描述

//员工信息
typedef struct _Staff
{
	int worknum; //工号
	wchar_t  name[10];//姓名
	char  sex[4]; 
	int age;
	wchar_t interest[30];//兴趣
	wchar_t department[20];
	wchar_t position[20];
	float tempsalary;
	float formalsalary;
	wchar_t joinTime[12];
	wchar_t officialTime[12];
	wchar_t leaveTime;
	wchar_t tel[15];
	wchar_t address;
}Staff;

关闭窗口进行保存
在这里插入图片描述

void CStudentSystemDlg::OnDestroy()
{
	CDialogEx::OnDestroy();

	//打开文件
	CFile file;
	if ( FALSE==file.Open(L"system.txt", CFile::modeCreate | CFile::modeWrite) )
	{
		MessageBox(L"打开文件失败");
		return;
	}


	//获取总行数
	int nCount=m_frameDlg.m_list.GetItemCount();
	for (int i = 0; i < nCount; i++)
	{
		Staff staff = { 0 };


		staff.worknum = _wtoi(m_frameDlg.m_list.GetItemText(i, 0));
		wcscpy(staff.name ,m_frameDlg.m_list.GetItemText(i, 1));

		//性别
		wcscpy(staff.sex,m_frameDlg.m_list.GetItemText(i, 2));
		staff.age = _wtoi(m_frameDlg.m_list.GetItemText(i, 3));
		//兴趣爱好
		wcscpy(staff.interest,m_frameDlg.m_list.GetItemText(i, 4));
		//部门
		wcscpy(staff.department,m_frameDlg.m_list.GetItemText(i, 5));
		//职位
		wcscpy(staff.position,m_frameDlg.m_list.GetItemText(i, 6));
		

		staff.tempsalary = _wtof(m_frameDlg.m_list.GetItemText(i, 7));

		staff.formalsalary = _wtof(m_frameDlg.m_list.GetItemText(i, 8));

		//入职时间
		wcscpy(staff.joinTime,m_frameDlg.m_list.GetItemText(i, 9));//时间字符串转换
		wcscpy(staff.officialTime,m_frameDlg.m_list.GetItemText(i, 10));//时间字符串转换
		wcscpy(staff.leaveTime,m_frameDlg.m_list.GetItemText(i, 11));//时间字符串转换
		wcscpy(staff.tel, m_frameDlg.m_list.GetItemText(i, 12));
		wcscpy(staff.address, m_frameDlg.m_list.GetItemText(i, 13));

		file.Write(&staff, sizeof(staff));


	}
	file.Close();
	
}

请添加图片描述

打开时显示读取内容

BOOL CStudentSystemDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	m_frameDlg.Create(IDD_FRAME_DLG,this);
	//获取客户去的宽和高
	CRect rect;
	GetClientRect(&rect);

	m_frameDlg.MoveWindow(100, 90, rect.Width() - 150, rect.Height() - 150);
	m_frameDlg.ShowWindow(SW_SHOW);


	//循环读取文件
	CFile file;
	if (file.Open(L"system.txt", CFile::modeRead)==FALSE)
	{
		MessageBox(L"打开文件失败");
		return TRUE;
	}
	Staff staff;
	int i = 0;
	while (file.Read(&staff,sizeof(staff)))
	{
		CString str;
		str.Format(L"%d", staff.worknum);
		m_frameDlg.m_list.InsertItem(i,str);
		m_frameDlg.m_list.SetItemText(i,1, staff.name);

		i++;
	}
	file.Close();



	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

全部代码

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
// CAddDlg.h 对话框

#pragma once


// CAddDlg 对话框

class CAddDlg : public CDialogEx
{
	DECLARE_DYNAMIC(CAddDlg)

public:
	CAddDlg(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CAddDlg();

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_ADD_DLG };
#endif

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()
public:
	CString m_nWorkNum;
	CString m_strName;
	int m_nSex;
	CString m_nAge;
	BOOL m_bPlay;
	BOOL m_bClimb;
	BOOL m_bKsing;
	BOOL m_bRead;
	CComboBox M_department;
	CString m_strDepartment;
	CComboBox m_position;
	CString m_strPosition;
	float m_fTempsalary;
	float m_fFormalsalary;
	COleDateTime m_joinTime;
	COleDateTime m_officialTime;
	COleDateTime m_leaveTime;
	CString m_tel;
	CString m_strAddress;
	afx_msg void OnBnClickedBtnAdd();
	virtual BOOL OnInitDialog();
};

//CAddDlg.cpp: 实现文件

// CAddDlg.cpp: 实现文件
//

#include "pch.h"
#include "StudentSystem.h"
#include "CAddDlg.h"
#include "afxdialogex.h"


// CAddDlg 对话框

IMPLEMENT_DYNAMIC(CAddDlg, CDialogEx)

CAddDlg::CAddDlg(CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_ADD_DLG, pParent)
	, m_nWorkNum(_T(""))
	, m_strName(_T(""))
	, m_nSex(0)
	, m_nAge(_T(""))
	, m_bPlay(FALSE)
	, m_bClimb(FALSE)
	, m_bKsing(FALSE)
	, m_bRead(FALSE)
	, m_fTempsalary(0)
	, m_fFormalsalary(0)
	, m_joinTime(COleDateTime::GetCurrentTime())
	, m_officialTime(COleDateTime::GetCurrentTime())
	, m_leaveTime(COleDateTime::GetCurrentTime())
	, m_tel(_T(""))
	, m_strAddress(_T(""))
{

}

CAddDlg::~CAddDlg()
{
}

void CAddDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT1, m_nWorkNum);
	DDX_Text(pDX, IDC_EDIT2, m_strName);
	DDX_Radio(pDX, IDC_RADIO1, m_nSex);
	DDX_Text(pDX, IDC_EDIT3, m_nAge);
	DDX_Check(pDX, IDC_CHECK2, m_bPlay);
	DDX_Check(pDX, IDC_CHECK3, m_bClimb);
	DDX_Check(pDX, IDC_CHECK4, m_bKsing);
	DDX_Check(pDX, IDC_CHECK5, m_bRead);
	DDX_Control(pDX, IDC_COMBO1, M_department);
	DDX_Control(pDX, IDC_COMBO2, m_position);
	DDX_Text(pDX, IDC_EDIT4, m_fTempsalary);
	DDX_Text(pDX, IDC_EDIT6, m_fFormalsalary);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_joinTime);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER3, m_officialTime);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER2, m_leaveTime);
	DDX_Text(pDX, IDC_EDIT7, m_tel);
	DDX_Text(pDX, IDC_EDIT5, m_strAddress);
}


BEGIN_MESSAGE_MAP(CAddDlg, CDialogEx)
	ON_BN_CLICKED(IDC_BTN_ADD, &CAddDlg::OnBnClickedBtnAdd)
END_MESSAGE_MAP()


// CAddDlg 消息处理程序

//添加
void CAddDlg::OnBnClickedBtnAdd()
{
	
	//判断工号
	UpdateData(TRUE);
	if (m_nWorkNum.IsEmpty() || m_strName.IsEmpty())
	{
		MessageBox(L"请先填写工号或者姓名");
		return;
	}
	//获取到下拉框的值
	CString str;
	M_department.GetWindowText(str);
	m_strDepartment = str;

	
	m_position.GetWindowText(str);
	m_strPosition = str;


	//添加玩后关闭窗口
	EndDialog(IDOK);
}


BOOL CAddDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	M_department.AddString(L"研发部");
	M_department.AddString(L"人事部");
	M_department.AddString(L"行政部");
	M_department.AddString(L"财务部");
	M_department.AddString(L"销售部");
	M_department.SetCurSel(0);
	m_position.AddString(L"C++");
	m_position.AddString(L"Java");
	m_position.AddString(L"人事专员");
	m_position.AddString(L"行政专员");
	m_position.AddString(L"会计");
	m_position.AddString(L"销售经理");
	m_position.SetCurSel(0);
	return TRUE; 
}

// CFrameDlg.h 对话框

#pragma once


// CFrameDlg 对话框

class CFrameDlg : public CDialogEx
{
	DECLARE_DYNAMIC(CFrameDlg)

public:
	CFrameDlg(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CFrameDlg();

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_FRAME_DLG };
#endif

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnBnClickedOk();
	virtual BOOL OnInitDialog();
	CListCtrl m_list;
	afx_msg void OnSize(UINT nType, int cx, int cy);
	
};

//CFrameDlg.cpp: 实现文件

// CFrameDlg.cpp: 实现文件
//

#include "pch.h"
#include "StudentSystem.h"
#include "CFrameDlg.h"
#include "afxdialogex.h"


// CFrameDlg 对话框

IMPLEMENT_DYNAMIC(CFrameDlg, CDialogEx)

CFrameDlg::CFrameDlg(CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_FRAME_DLG, pParent)
{

}

CFrameDlg::~CFrameDlg()
{
}

void CFrameDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST, m_list);
}


BEGIN_MESSAGE_MAP(CFrameDlg, CDialogEx)
	ON_BN_CLICKED(IDOK, &CFrameDlg::OnBnClickedOk)
	ON_WM_SIZE()
	
END_MESSAGE_MAP()


// CFrameDlg 消息处理程序


void CFrameDlg::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	//CDialogEx::OnOK();
}


BOOL CFrameDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);//拓展风格
	m_list.InsertColumn(0, L"工号", LVCFMT_LEFT, 100);
	m_list.InsertColumn(1, L"姓名", LVCFMT_LEFT, 100);
	m_list.InsertColumn(2, L"性别", LVCFMT_LEFT, 100);
	m_list.InsertColumn(3, L"年龄", LVCFMT_LEFT, 100);
	m_list.InsertColumn(4, L"兴趣爱好", LVCFMT_LEFT, 100);
	m_list.InsertColumn(5, L"部门", LVCFMT_LEFT, 100);
	m_list.InsertColumn(6, L"职位", LVCFMT_LEFT, 100);
	m_list.InsertColumn(7, L"试用薪资", LVCFMT_LEFT, 100);
	m_list.InsertColumn(8, L"转正薪资", LVCFMT_LEFT, 100);
	m_list.InsertColumn(9, L"入职时间", LVCFMT_LEFT, 100);
	m_list.InsertColumn(10, L"转正时间", LVCFMT_LEFT, 100);
	m_list.InsertColumn(11, L"离职时间", LVCFMT_LEFT, 100);
	m_list.InsertColumn(12, L"联系电话", LVCFMT_LEFT, 100);
	m_list.InsertColumn(13, L"家庭住址", LVCFMT_LEFT, 100);
	return TRUE;  
}


void CFrameDlg::OnSize(UINT nType, int cx, int cy)
{
	CDialogEx::OnSize(nType, cx, cy);

	if (m_list.GetSafeHwnd())
	{
		m_list.MoveWindow(0,0,cx,cy);
	}
}

// CLoginDlg.h 对话框

#pragma once


// CLoginDlg 对话框

class CLoginDlg : public CDialogEx
{
	DECLARE_DYNAMIC(CLoginDlg)

public:
	CLoginDlg(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CLoginDlg();

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_LOGIN_DLG };
#endif

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnBnClickedBtnLogin();
	CString m_strUsername;
	CString m_strPassword;
};

// CLoginDlg.cpp: 实现文件

// CLoginDlg.cpp: 实现文件
//

#include "pch.h"
#include "StudentSystem.h"
#include "CLoginDlg.h"
#include "afxdialogex.h"


// CLoginDlg 对话框

IMPLEMENT_DYNAMIC(CLoginDlg, CDialogEx)

CLoginDlg::CLoginDlg(CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_LOGIN_DLG, pParent)
	, m_strUsername(_T("admin"))
	, m_strPassword(_T("123456"))
{

}

CLoginDlg::~CLoginDlg()
{
}

void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_USENAME, m_strUsername);
	DDX_Text(pDX, IDC_PASSWORD, m_strPassword);
}


BEGIN_MESSAGE_MAP(CLoginDlg, CDialogEx)
	ON_BN_CLICKED(IDC_BTN_LOGIN, &CLoginDlg::OnBnClickedBtnLogin)
END_MESSAGE_MAP()


// CLoginDlg 消息处理程序


void CLoginDlg::OnBnClickedBtnLogin()
{
	UpdateData(TRUE);
	if (m_strUsername.IsEmpty() || m_strPassword.IsEmpty())
	{
		MessageBox(L"用户名或者密码为空", L"提示");
		return;
	}

	if (m_strUsername == L"admin" && m_strPassword == L"123456")
	{
		//成功
		EndDialog(IDOK);
	}
	else
	{
		MessageBox(_T("登陆失败"), L"提示");
		return;
	}

}

//framework.h

#pragma once

#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN            // 从 Windows 头中排除极少使用的资料
#endif

#include "targetver.h"

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // 某些 CString 构造函数将是显式的

// 关闭 MFC 的一些常见且经常可放心忽略的隐藏警告消息
#define _AFX_ALL_WARNINGS

#include <afxwin.h>         // MFC 核心组件和标准组件
#include <afxext.h>         // MFC 扩展


#include <afxdisp.h>        // MFC 自动化类



#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h>           // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>             // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT

#include <afxcontrolbars.h>     // MFC 支持功能区和控制条


//员工信息
typedef struct _Staff
{
	int worknum; //工号
	wchar_t  name[10];//姓名
	wchar_t  sex[4];
	int age;
	wchar_t interest[30];//兴趣
	wchar_t department[20];
	wchar_t position[20];
	float tempsalary;
	float formalsalary;
	wchar_t joinTime[12];
	wchar_t officialTime[12];
	wchar_t leaveTime[12];
	wchar_t tel[15];
	wchar_t address[20];
}Staff;






#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

// CModifyDlg 对话框

#pragma once


// CModifyDlg 对话框

class CModifyDlg : public CDialogEx
{
	DECLARE_DYNAMIC(CModifyDlg)

public:
	CModifyDlg(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CModifyDlg();

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_MODIFY_DLG };
#endif

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()
public:
	CString m_nWorkNum;
	CString m_strName;
	int m_nSex;
	CString m_nAge;
	BOOL m_bPlay;
	BOOL m_bClimb;
	BOOL m_bKsing;
	BOOL m_bRead;
	CComboBox M_department;
	CString m_strDepartment;
	CComboBox m_position;
	CString m_strPosition;
	float m_fTempsalary;
	float m_fFormalsalary;
	COleDateTime m_joinTime;
	COleDateTime m_officialTime;
	COleDateTime m_leaveTime;
	CString m_tel;
	CString m_strAddress;
	//afx_msg void OnBnClickedBtnAdd();
	virtual BOOL OnInitDialog();
	afx_msg void OnBnClickedOk();
	afx_msg void OnBnClickedBtnModify();
};

// CModifyDlg.cpp: 实现文件

// CModifyDlg.cpp: 实现文件
//

#include "pch.h"
#include "StudentSystem.h"
#include "CModifyDlg.h"
#include "afxdialogex.h"


// CModifyDlg 对话框

IMPLEMENT_DYNAMIC(CModifyDlg, CDialogEx)

CModifyDlg::CModifyDlg(CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_MODIFY_DLG, pParent)
	, m_nWorkNum(_T(""))
	, m_strName(_T(""))
	, m_nSex(0)
	, m_nAge(_T(""))
	, m_bPlay(FALSE)
	, m_bClimb(FALSE)
	, m_bKsing(FALSE)
	, m_bRead(FALSE)
	, m_fTempsalary(0)
	, m_fFormalsalary(0)
	, m_joinTime(COleDateTime::GetCurrentTime())
	, m_officialTime(COleDateTime::GetCurrentTime())
	, m_leaveTime(COleDateTime::GetCurrentTime())
	, m_tel(_T(""))
	, m_strAddress(_T(""))
{

}

CModifyDlg::~CModifyDlg()
{
}

void CModifyDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT1, m_nWorkNum);
	DDX_Text(pDX, IDC_EDIT2, m_strName);
	DDX_Radio(pDX, IDC_RADIO1, m_nSex);
	DDX_Text(pDX, IDC_EDIT3, m_nAge);
	DDX_Check(pDX, IDC_CHECK2, m_bPlay);
	DDX_Check(pDX, IDC_CHECK3, m_bClimb);
	DDX_Check(pDX, IDC_CHECK4, m_bKsing);
	DDX_Check(pDX, IDC_CHECK5, m_bRead);
	DDX_Control(pDX, IDC_COMBO1, M_department);
	DDX_Control(pDX, IDC_COMBO2, m_position);
	DDX_Text(pDX, IDC_EDIT4, m_fTempsalary);
	DDX_Text(pDX, IDC_EDIT6, m_fFormalsalary);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_joinTime);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER3, m_officialTime);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER2, m_leaveTime);
	DDX_Text(pDX, IDC_EDIT7, m_tel);
	DDX_Text(pDX, IDC_EDIT5, m_strAddress);


}


BEGIN_MESSAGE_MAP(CModifyDlg, CDialogEx)
	ON_BN_CLICKED(IDOK, &CModifyDlg::OnBnClickedOk)
	ON_BN_CLICKED(IDC_BTN_MODIFY, &CModifyDlg::OnBnClickedBtnModify)
END_MESSAGE_MAP()


// CModifyDlg 消息处理程序


void CModifyDlg::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	//CDialogEx::OnOK();
}


//修改
void CModifyDlg::OnBnClickedBtnModify()
{
	//判断工号
	UpdateData(TRUE);
	if (m_nWorkNum.IsEmpty() || m_strName.IsEmpty())
	{
		MessageBox(L"请先填写工号或者姓名");
		return;
	}
	//获取到下拉框的值
	CString str;
	M_department.GetWindowText(str);
	m_strDepartment = str;


	m_position.GetWindowText(str);
	m_strPosition = str;


	//添加玩后关闭窗口
	EndDialog(IDOK);
}


BOOL CModifyDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	M_department.AddString(L"研发部");
	M_department.AddString(L"人事部");
	M_department.AddString(L"行政部");
	M_department.AddString(L"财务部");
	M_department.AddString(L"销售部");
	
	m_position.AddString(L"C++");
	m_position.AddString(L"Java");
	m_position.AddString(L"人事专员");
	m_position.AddString(L"行政专员");
	m_position.AddString(L"会计");
	m_position.AddString(L"销售经理");
	


	M_department.SetWindowText(m_strDepartment);
	m_position.SetWindowText(m_strPosition);
	return TRUE;
}

// StudentSystemDlg.h: 头文件


// StudentSystemDlg.h: 头文件
//

#pragma once
#include "CFrameDlg.h"

// CStudentSystemDlg 对话框
class CStudentSystemDlg : public CDialogEx
{
// 构造
public:
	CStudentSystemDlg(CWnd* pParent = nullptr);	// 标准构造函数

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_STUDENTSYSTEM_DIALOG };
#endif

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持


// 实现
protected:
	HICON m_hIcon;
	CFrameDlg m_frameDlg;

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnBnClickedBtnAdd();
	afx_msg void OnBnClickedBtnDelete();
	afx_msg void OnBnClickedBtnModify();
	afx_msg void OnDestroy();
};

// StudentSystemDlg.cpp: 实现文件

// StudentSystemDlg.cpp: 实现文件
//

#include "pch.h"
#include "framework.h"
#include "StudentSystem.h"
#include "StudentSystemDlg.h"
#include "afxdialogex.h"
#include "CAddDlg.h"
#include "CModifyDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CStudentSystemDlg 对话框



CStudentSystemDlg::CStudentSystemDlg(CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_STUDENTSYSTEM_DIALOG, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CStudentSystemDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CStudentSystemDlg, CDialogEx)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_WM_SIZE()
	ON_BN_CLICKED(IDC_BTN_ADD, &CStudentSystemDlg::OnBnClickedBtnAdd)
	ON_BN_CLICKED(IDC_BTN_DELETE, &CStudentSystemDlg::OnBnClickedBtnDelete)
	ON_BN_CLICKED(IDC_BTN_MODIFY, &CStudentSystemDlg::OnBnClickedBtnModify)
	ON_WM_DESTROY()
END_MESSAGE_MAP()


// CStudentSystemDlg 消息处理程序

BOOL CStudentSystemDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	m_frameDlg.Create(IDD_FRAME_DLG,this);
	//获取客户去的宽和高
	CRect rect;
	GetClientRect(&rect);

	m_frameDlg.MoveWindow(100, 90, rect.Width() - 150, rect.Height() - 150);
	m_frameDlg.ShowWindow(SW_SHOW);


	//循环读取文件
	CFile file;
	if (file.Open(L"system.txt", CFile::modeRead)==FALSE)
	{
		MessageBox(L"打开文件失败");
		return TRUE;
	}
	Staff staff;
	int i = 0;
	while (file.Read(&staff,sizeof(staff)))
	{
		CString str;
		str.Format(L"%d", staff.worknum);
		m_frameDlg.m_list.InsertItem(i,str);
		m_frameDlg.m_list.SetItemText(i,1, staff.name);

		i++;
	}
	file.Close();



	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

// 如果向对话框添加最小化按钮,则需要下面的代码
//  来绘制该图标。  对于使用文档/视图模型的 MFC 应用程序,
//  这将由框架自动完成。

void CStudentSystemDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // 用于绘制的设备上下文

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 使图标在工作区矩形中居中
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// 绘制图标
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialogEx::OnPaint();
	}
}

//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CStudentSystemDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}



void CStudentSystemDlg::OnSize(UINT nType, int cx, int cy)
{
	CDialogEx::OnSize(nType, cx, cy);

	if (m_frameDlg.GetSafeHwnd())
	{
		//获取客户去的宽和高
		CRect rect;
		GetClientRect(&rect);
		m_frameDlg.MoveWindow(100, 90, rect.Width() - 150, rect.Height() - 150);
	}
}


//添加员工
void CStudentSystemDlg::OnBnClickedBtnAdd()
{
	CAddDlg dlg;
	if (IDCANCEL == dlg.DoModal())
	{
		return;
	}


	//获取列表总函数
	int nCount = this->m_frameDlg.m_list.GetItemCount();
	//工号数据添加到列表中
	//CString str;
	//str.Format(L"%0.5d", dlg.m_nWorkNum);
	this->m_frameDlg.m_list.InsertItem(nCount, dlg.m_nWorkNum);

	//姓名插入
	this->m_frameDlg.m_list.SetItemText(nCount, 1, dlg.m_strName);

	//性别
	CString strSex = dlg.m_nSex ==1? L"女" : L"男";//如果是1就是女,是0就是男
	this->m_frameDlg.m_list.SetItemText(nCount, 2, strSex);

	//年龄
	CString str;
	//str.Format(L"%0.5d", dlg.m_nAge);
	this->m_frameDlg.m_list.SetItemText(nCount, 3, dlg.m_nAge);

	//兴趣
	str.Empty();
	if (dlg.m_bClimb)
		str += L"爬山;";
	if (dlg.m_bKsing)
		str += "唱歌;";
	if (dlg.m_bPlay)
		str += "打游戏;";
	if (dlg.m_bRead)
		str += "读书;";
	this->m_frameDlg.m_list.SetItemText(nCount, 4, str);

	//部门
	this->m_frameDlg.m_list.SetItemText(nCount, 5,dlg.m_strDepartment);

	//职位
	this->m_frameDlg.m_list.SetItemText(nCount, 6, dlg.m_strPosition);

	//试用薪资
	str.Format(L"%.2f", dlg.m_fTempsalary);
	this->m_frameDlg.m_list.SetItemText(nCount, 7, str);
	//转正薪资
	str.Format(L"%.2f", dlg.m_fTempsalary);
	this->m_frameDlg.m_list.SetItemText(nCount, 8, str);

	//入职时间
	str = dlg.m_joinTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nCount, 9, str);

	//转正时间
	str = dlg.m_officialTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nCount, 10, str);

	str = dlg.m_leaveTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nCount, 11, str);

	//联系电话
	this->m_frameDlg.m_list.SetItemText(nCount, 12, dlg.m_tel);

	//家庭住址

	this->m_frameDlg.m_list.SetItemText(nCount, 13, dlg.m_strAddress);
}


//删除
void CStudentSystemDlg::OnBnClickedBtnDelete()
{
	POSITION pos=m_frameDlg.m_list.GetFirstSelectedItemPosition();//获取删除位置
	int nSel=m_frameDlg.m_list.GetNextSelectedItem(pos);//获取选中
	if (nSel < 0)//没有选
	{
		MessageBox(L"请您选中之后在删除");
		return;
	}
	m_frameDlg.m_list.DeleteItem(nSel);

	//删除所有
	//m_frameDlg.m_list.DeleteAllItems();

}

//修改
void CStudentSystemDlg::OnBnClickedBtnModify()
{
	//选中
	POSITION pos = m_frameDlg.m_list.GetFirstSelectedItemPosition();//获取删除位置
	int nSel = m_frameDlg.m_list.GetNextSelectedItem(pos);//获取选中
	if (nSel < 0)//没有选
	{
		MessageBox(L"请您选中之后在修改");
		return;
	}
	
	//读取数据
	CModifyDlg dlg;
	dlg.m_nWorkNum = m_frameDlg.m_list.GetItemText(nSel,0);
	dlg.m_strName = m_frameDlg.m_list.GetItemText(nSel, 1);

	//性别
	if (m_frameDlg.m_list.GetItemText(nSel, 2) == L"男")
		dlg.m_nSex = 0;
	else
		dlg.m_nSex = 1;
	dlg.m_nAge = m_frameDlg.m_list.GetItemText(nSel, 3);
	//兴趣爱好
	dlg.m_bClimb = FALSE;
	dlg.m_bPlay = FALSE;
	dlg.m_bKsing = FALSE;
	dlg.m_bRead = FALSE;
	CString strInterset= m_frameDlg.m_list.GetItemText(nSel, 4);
	if (strInterset.Find(L"打游戏") != -1)
	{
		dlg.m_bPlay = TRUE;
	}
	if (strInterset.Find(L"爬山") != -1)
	{
		dlg.m_bClimb = TRUE;
	}
	if (strInterset.Find(L"唱歌") != -1)
	{
		dlg.m_bKsing = TRUE;
	}
	if (strInterset.Find(L"读书") != -1)
	{
		dlg.m_bRead = TRUE;
	}
	
	//部门
	dlg.m_strDepartment = m_frameDlg.m_list.GetItemText(nSel, 5);
	//设置部门显示
	//dlg.M_department.SetWindowText(dlg.m_strDepartment);

	//职位
	dlg.m_strPosition= m_frameDlg.m_list.GetItemText(nSel, 6);
	//dlg.m_position.SetWindowText(dlg.m_strPosition);

	dlg.m_fTempsalary= _wtof(m_frameDlg.m_list.GetItemText(nSel, 7));

	dlg.m_fFormalsalary= _wtof(m_frameDlg.m_list.GetItemText(nSel, 8));

	//入职时间
	dlg.m_joinTime.ParseDateTime(m_frameDlg.m_list.GetItemText(nSel, 9));//时间字符串转换
	dlg.m_officialTime.ParseDateTime(m_frameDlg.m_list.GetItemText(nSel, 10));//时间字符串转换
	dlg.m_leaveTime.ParseDateTime(m_frameDlg.m_list.GetItemText(nSel, 11));//时间字符串转换
	dlg.m_tel = m_frameDlg.m_list.GetItemText(nSel, 12);
	dlg.m_strAddress = m_frameDlg.m_list.GetItemText(nSel, 12);

	if (IDCANCEL == dlg.DoModal())
	{
		return;
	}

	//m_frameDlg.m_list.DeleteItem(nSel);

	//工号数据添加到列表中
	//CString str;
	//str.Format(L"%0.5d", dlg.m_nWorkNum);
	this->m_frameDlg.m_list.SetItemText(nSel,0, dlg.m_nWorkNum);

	//姓名插入
	this->m_frameDlg.m_list.SetItemText(nSel, 1, dlg.m_strName);

	//性别
	CString strSex = dlg.m_nSex == 1 ? L"女" : L"男";//如果是1就是女,是0就是男
	this->m_frameDlg.m_list.SetItemText(nSel, 2, strSex);

	//年龄
	CString str;
	//str.Format(L"%0.5d", dlg.m_nAge);
	this->m_frameDlg.m_list.SetItemText(nSel, 3, dlg.m_nAge);

	//兴趣
	str.Empty();
	if (dlg.m_bClimb)
		str += L"爬山;";
	if (dlg.m_bKsing)
		str += "唱歌;";
	if (dlg.m_bPlay)
		str += "打游戏;";
	if (dlg.m_bRead)
		str += "读书;";
	this->m_frameDlg.m_list.SetItemText(nSel, 4, str);

	//部门
	this->m_frameDlg.m_list.SetItemText(nSel, 5, dlg.m_strDepartment);

	//职位
	this->m_frameDlg.m_list.SetItemText(nSel, 6, dlg.m_strPosition);

	//试用薪资
	str.Format(L"%.2f", dlg.m_fTempsalary);
	this->m_frameDlg.m_list.SetItemText(nSel, 7, str);
	//转正薪资
	str.Format(L"%.2f", dlg.m_fTempsalary);
	this->m_frameDlg.m_list.SetItemText(nSel, 8, str);

	//入职时间
	str = dlg.m_joinTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nSel, 9, str);

	//转正时间
	str = dlg.m_officialTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nSel, 10, str);

	str = dlg.m_leaveTime.Format(L"%Y-%m-%d");
	this->m_frameDlg.m_list.SetItemText(nSel, 11, str);

	//联系电话
	this->m_frameDlg.m_list.SetItemText(nSel, 12, dlg.m_tel);

	//家庭住址

	this->m_frameDlg.m_list.SetItemText(nSel, 13, dlg.m_strAddress);
}


void CStudentSystemDlg::OnDestroy()
{
	CDialogEx::OnDestroy();

	//打开文件
	CFile file;
	if ( FALSE==file.Open(L"system.txt", CFile::modeCreate | CFile::modeWrite) )
	{
		MessageBox(L"打开文件失败");
		return;
	}


	//获取总行数
	int nCount=m_frameDlg.m_list.GetItemCount();
	for (int i = 0; i < nCount; i++)
	{
		Staff staff = { 0 };


		staff.worknum = _wtoi(m_frameDlg.m_list.GetItemText(i, 0));
		wcscpy(staff.name ,m_frameDlg.m_list.GetItemText(i, 1));

		//性别
		wcscpy(staff.sex,m_frameDlg.m_list.GetItemText(i, 2));
		staff.age = _wtoi(m_frameDlg.m_list.GetItemText(i, 3));
		//兴趣爱好
		wcscpy(staff.interest,m_frameDlg.m_list.GetItemText(i, 4));
		//部门
		wcscpy(staff.department,m_frameDlg.m_list.GetItemText(i, 5));
		//职位
		wcscpy(staff.position,m_frameDlg.m_list.GetItemText(i, 6));
		

		staff.tempsalary = _wtof(m_frameDlg.m_list.GetItemText(i, 7));

		staff.formalsalary = _wtof(m_frameDlg.m_list.GetItemText(i, 8));

		//入职时间
		wcscpy(staff.joinTime,m_frameDlg.m_list.GetItemText(i, 9));//时间字符串转换
		wcscpy(staff.officialTime,m_frameDlg.m_list.GetItemText(i, 10));//时间字符串转换
		wcscpy(staff.leaveTime,m_frameDlg.m_list.GetItemText(i, 11));//时间字符串转换
		wcscpy(staff.tel, m_frameDlg.m_list.GetItemText(i, 12));
		wcscpy(staff.address, m_frameDlg.m_list.GetItemText(i, 13));

		file.Write(&staff, sizeof(staff));


	}
	file.Close();
	
}
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值