吕鑫MFC学习系列一

前面有学习MFC比较零乱,利用假期好好恶补一下,接下来按照在网易公开课上吕鑫老师的MFC的教程来学习MFC的开发。

第一个学习的是员工管理系统,先把实现好的窗口贴上来。

吕鑫MFC学习系列一_第1张图片吕鑫MFC学习系列一_第2张图片


主要的功能:添加(员工的工号,姓名,工资),选中删除的员工,修改选中的员工。

首先是新建MFC应用程序然后新建DLG,名字改为:员工管理系统

然后添加工具箱里面的编辑控件和静态控件,分别修改名字和ID,名字改为工号,姓名,工资;编辑框ID修改为IDC_NUMB、IDC_NAME、IDC_SALA.

接着添加List控件,不是List Box控件,在List控件添加后记住一定要修改view为report,不然后面添加了列名不会显示出列名的。

这些都完成之后我们接下来就增加按钮:添加、删除、修改,分别修改ID为IDC_ADD、IDC_DEL、IDC_MOD。

接下来这几个功能键怎么实现添加员工到list中呢?

第一步,要获取List控件的ID,然后在控件中添加列名:工号,姓名,工资。

BOOL CFirstMFCDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
	pList->InsertColumn(0, "工号", 0, 120);
	pList->InsertColumn(1, "姓名", 0, 160);
	pList->InsertColumn(2, "工资(万元)", 0, 180);
第二步,设置添加按钮的函数作用。

void CFirstMFCDlg::OnBnClickedAdd()
{
	CString str;
	this->GetDlgItemText(IDC_NUMB, str);
	CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
	int nCount = pList->GetItemCount();//从尾部插入
	pList->InsertItem(nCount,str);
	GetDlgItemText(IDC_NAME, str);
	pList->SetItemText(nCount,1, str);
	GetDlgItemText(IDC_SALA, str);
	pList->SetItemText(nCount,2, str);
}
第三步,设置删除按钮的功能。

void CFirstMFCDlg::OnBnClickedDel()
{
	CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
	//int nSel = pList->GetSelectionMark();//基于虚线选中
	POSITION pos = pList->GetFirstSelectedItemPosition();//可以选中多行,并且是蓝色选中
	int nSel= pList->GetNextSelectedItem(pos);
	if (nSel<0)
	{
		AfxMessageBox("请先选中一行再进行删除!");
		return;
	}
	if (IDYES == AfxMessageBox("确认删除选中的数据么?", MB_YESNO))
		pList->DeleteItem(nSel);
}
第四步,设置修改按钮的功能。

void CFirstMFCDlg::OnBnClickedMod()
{
	CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
	//int nSel = pList->GetSelectionMark();//基于虚线选中
	POSITION pos = pList->GetFirstSelectedItemPosition();//可以选中多行,并且是蓝色选中
	int nSel = pList->GetNextSelectedItem(pos);
	if (nSel < 0)
	{
		AfxMessageBox("请先选中一行再进行修改!");
		return;
	}
	CString str;
	GetDlgItemText(IDC_NUMB, str);
	if (IDNO == AfxMessageBox("确认修改工号:"+ str+"的数据么?", MB_YESNO))
		return;

	GetDlgItemText(IDC_NAME, str);
	pList->SetItemText(nSel, 1, str);
	GetDlgItemText(IDC_SALA, str);
	pList->SetItemText(nSel, 2, str);
}
完成了吕鑫老师第一个小窗口,继续学习后面的内容。。。。。。。。。。。。。。

你可能感兴趣的:(吕鑫MFC学习系列一)