文章目录
- 登录
- 设置登录界面
- 登录用户判断
- 界面设计
- 嵌入对话框
- 添加列表
- 添加员工
- 添加按钮
- 完成添加员工
- 删除员工
- 修改员工信息
- 修改
- 完成修改员工
- 保存数据
- 打开时显示读取内容
- 全部代码
登录
设置登录界面
初始化窗口实列
添加控件变量
登录用户判断
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();
}