前面有学习MFC比较零乱,利用假期好好恶补一下,接下来按照在网易公开课上吕鑫老师的MFC的教程来学习MFC的开发。
第一个学习的是员工管理系统,先把实现好的窗口贴上来。
主要的功能:添加(员工的工号,姓名,工资),选中删除的员工,修改选中的员工。
首先是新建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); }完成了吕鑫老师第一个小窗口,继续学习后面的内容。。。。。。。。。。。。。。