前面有学习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);
}
完成了吕鑫老师第一个小窗口,继续学习后面的内容。。。。。。。。。。。。。。