}
void CUserDlg::OnClickListUsername(NMHDR* pNMHDR, LRESULT* pResult) { CString strSQL; UpdateData(TRUE); //从数据库中获取选择用户名的资料 int i = m_ctrList.GetSelectionMark(); m_strUser = m_ctrList.GetItemText(i,0); strSQL.Format(\ if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(\打开数据库失败!\数据库错误\ return ; } //显示用户资料 m_strPass = m_recordset.m_passwd; m_strRePass = m_strPass; m_bIsAdmin = m_recordset.m_isadmin; m_recordset.Close(); UpdateData(FALSE); *pResult = 0; }
void CUserDlg::OnButtonNew() { //清空用户资料 m_strUser = \ m_strPass = \ m_strRePass = \ m_bIsAdmin = FALSE; //设置用户名编辑框为可用 m_ctrUser.EnableWindow(TRUE); m_ctrUser.SetFocus(); //更新数据到界面 UpdateData(FALSE); }
void CUserDlg::OnButtonDelete() { UpdateData(TRUE); //判断是否指定用户 if(m_strUser==\ { MessageBox(\请选择一个用户!\ return; } CString strSQL; strSQL.Format(\ if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(\打开数据库失败!\数据库错误\ return ; }
//删除该用户 m_recordset.Delete(); m_recordset.Close(); //刷新用户列表 RefreshData(); m_strUser = \ m_strPass = \ m_strRePass = \ m_bIsAdmin = FALSE; UpdateData(FALSE); }
void CUserDlg::OnOK() { UpdateData(); if(m_ctrUser.IsWindowEnabled()) {//增加新用户的输入检查 if(m_strUser==\ { MessageBox(\请填写用户名!\ m_ctrUser.SetFocus(); return; } } else {//修改用户信息的输入检查 if(m_strUser==\ { MessageBox(\请选择一个用户!\ return; } } //限制密码不能为空 if(m_strPass==\ { MessageBox(\密码不能为空,请输入密码!\ m_ctrPass.SetFocus(); return; } //验证密码与确认密码是否一致 if(m_strPass!=m_strRePass) { MessageBox(\两次输入地密码不一致,请重新输入密码!\ m_ctrPass.SetFocus(); m_strPass = \ m_strRePass = \ UpdateData(FALSE); return; } //打开记录集 CString strSQL; strSQL.Format(\ if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) {
MessageBox(\打开数据库失败!\数据库错误\ return ; } if(m_ctrUser.IsWindowEnabled()) {//增加新用户 //判断用户是否已经存在 if(m_recordset.GetRecordCount()!=0) { m_recordset.Close(); MessageBox(\该用户已经存在!\ return; } m_recordset.AddNew(); m_recordset.m_user = m_strUser; m_recordset.m_passwd = m_strPass; m_recordset.m_isadmin = m_bIsAdmin; m_recordset.Update(); MessageBox(\用户添加成功!请记住用户名和密码!\ m_recordset.Close(); } else {//修改用户信息 //判断用户是否不存在 if(m_recordset.GetRecordCount()==0) { m_recordset.Close(); MessageBox(\该用户不存在!请更新数据库\ return; } m_recordset.Edit(); m_recordset.m_user = m_strUser; m_recordset.m_passwd = m_strPass; m_recordset.m_isadmin = m_bIsAdmin; m_recordset.Update(); MessageBox(\用户修改成功!请记住用户名和密码!\ m_recordset.Close(); } m_ctrUser.EnableWindow(FALSE); //更新用户列表 RefreshData(); }
void CUserDlg::OnButtonCancel() { // TODO: Add your control notification handler code here m_strUser = \ m_strPass = \ m_strRePass = \ m_bIsAdmin = FALSE; m_ctrUser.EnableWindow(FALSE); UpdateData(FALSE); }
主窗体
1. 主体框架:使用MFC AppWizard 创建一个单文档结构的应用程序工程,建立起系统主
体框架,生成应用程序类(CmanagerApp),文档类(CmanagerDoc),视图类(CmanagerView)和主框架类(CmainFram).
2. 菜单和工具栏:根据系统的总体设计中功能模块的划分,使用资源编辑器创建系统菜单和
工具栏。
3. 背景图:通过修改系统的视图类Paintg事件处理函数OnPaint()来实现加载背景图,其具体
代码如下:
void CManagerView::OnPaint() {
CPaintDC* pDC=new CPaintDC(this); // device context for painting
CBitmap bmp; RECT Rect;
RECT RectView; POINT ptSize; CDC dcmem; BITMAP bm;
int b = bmp.LoadBitmap(IDB_BITMAP_BG); //将位图取出;
dcmem.CreateCompatibleDC(pDC); //创建兼容设备上下文。 dcmem.SelectObject(&bmp); //用设备上下文选择位图; dcmem.SetMapMode(pDC->GetMapMode()); //设置映射方式; GetObject(bmp.m_hObject, sizeof(BITMAP), (LPSTR)&bm); //映射位图;
GetClientRect(&Rect); ptSize.x=bm.bmWidth; ptSize.y=bm.bmHeight;
pDC->DPtoLP((LPPOINT)&ptSize,1);//设备单元to逻辑单元;
GetClientRect(&RectView);
CRect RectBmp = RectView;
if((RectView.right - RectView.left) > bm.bmWidth) //位图宽度容纳不下; { RectBmp.left = RectView.left + (RectView.right - RectView.left - bm.bmWidth) / 2; RectBmp.right = bm.bmWidth; } else { RectBmp.left = RectView.left; RectBmp.right = RectView.right - RectBmp.left; }
if((RectView.bottom - RectView.top) > bm.bmHeight) { RectBmp.top = RectView.top + (RectView.bottom - RectView.top - bm.bmHeight) / 2; RectBmp.bottom = bm.bmHeight; } else { RectBmp.top = RectView.top; RectBmp.bottom = RectView.bottom - RectBmp.top; }
pDC->StretchBlt(RectBmp.left, RectBmp.top, RectBmp.right,\\ RectBmp.bottom, &dcmem, 0, 0, bm.bmWidth, bm.bmHeight,\\ SRCCOPY);
dcmem.DeleteDC(); }
职工基本信息模块及界面设计
可以添加员工基本信息,员工编号,员工姓名,学历,专业??等等。 代码设如下: