📄 ex080201view.cpp
字号:
// Ex080201View.cpp : implementation of the CEx080201View class
//
#include "stdafx.h"
#include "Ex080201.h"
#include "Ex080201Doc.h"
#include "Ex080201View.h"
#include "EditUserDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEx080201View
IMPLEMENT_DYNCREATE(CEx080201View, CFormView)
BEGIN_MESSAGE_MAP(CEx080201View, CFormView)
//{{AFX_MSG_MAP(CEx080201View)
ON_BN_CLICKED(IDC_ADD_USER, OnAddUser)
ON_BN_CLICKED(IDC_DELETE_USER, OnDeleteUser)
ON_BN_CLICKED(IDC_EDIT_USER, OnEditUser)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_USER_LIST, OnItemchangedUserList)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEx080201View construction/destruction
CEx080201View::CEx080201View()
: CFormView(CEx080201View::IDD)
{
//{{AFX_DATA_INIT(CEx080201View)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CEx080201View::~CEx080201View()
{
}
void CEx080201View::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEx080201View)
DDX_Control(pDX, IDC_USER_LIST, m_userList);
//}}AFX_DATA_MAP
}
BOOL CEx080201View::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CFormView::PreCreateWindow(cs);
}
void CEx080201View::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
m_userList.InsertColumn(0,"用户名",LVCFMT_LEFT,100);
m_userList.InsertColumn(1,"权限",LVCFMT_LEFT,100);
m_userList.InsertColumn(2,"简价",LVCFMT_LEFT,100);
POSITION pos = CEx080201Doc::s_UserManage.m_userInfos.GetStartPosition() ;
while(NULL != pos )
{
UINT uID ;
CUser * pUser = NULL ;
CEx080201Doc::s_UserManage.m_userInfos.GetNextAssoc(pos,uID,pUser);
int nItem = m_userList.GetItemCount() ;
nItem = m_userList.InsertItem(nItem,pUser->m_strUserName);
CString strPopedom ;
strPopedom.Format("权限为%d",pUser->m_uPopedom);
m_userList.SetItemText(nItem,1,strPopedom);
m_userList.SetItemText(nItem,2,pUser->m_strComment);
m_userList.SetItemData(nItem,pUser->m_uID);
}
EableButtons() ;
}
/////////////////////////////////////////////////////////////////////////////
// CEx080201View printing
BOOL CEx080201View::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CEx080201View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CEx080201View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
void CEx080201View::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
// TODO: add customized printing code here
}
/////////////////////////////////////////////////////////////////////////////
// CEx080201View diagnostics
#ifdef _DEBUG
void CEx080201View::AssertValid() const
{
CFormView::AssertValid();
}
void CEx080201View::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CEx080201Doc* CEx080201View::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CEx080201Doc)));
return (CEx080201Doc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CEx080201View message handlers
void CEx080201View::OnAddUser()
{
CEditUserDlg dlg ;
if(IDOK != dlg.DoModal())
return ;
UINT uID = CEx080201Doc::s_UserManage.AddUser(dlg.m_strUserName,dlg.m_strPassword,dlg.m_nPopedom,dlg.m_strComment);
if(-1 != uID )
{
int nItem = m_userList.GetItemCount() ;
nItem = m_userList.InsertItem(nItem,dlg.m_strUserName);
CString strPopedom ;
strPopedom.Format("权限为%d",dlg.m_nPopedom);
m_userList.SetItemText(nItem,1,strPopedom);
m_userList.SetItemText(nItem,2,dlg.m_strComment);
m_userList.SetItemData(nItem,uID);
}
else
AfxMessageBox("增加用户失败");
}
void CEx080201View::OnEditUser()
{
POSITION pos = m_userList.GetFirstSelectedItemPosition();
if( NULL != pos )
{
int nSel = m_userList.GetNextSelectedItem(pos);
UINT uID = m_userList.GetItemData(nSel);
CUser * pUser = CEx080201Doc::s_UserManage.m_userInfos[uID] ;
CEditUserDlg dlg(pUser);
if(IDOK != dlg.DoModal())
return ;
CUser newUser(*pUser);
newUser.m_strUserName = dlg.m_strUserName ;
newUser.m_strPassWord = dlg.m_strPassword ;
newUser.m_uPopedom = (CUser::USER_TYPE)dlg.m_nPopedom ;
newUser.m_strComment = dlg.m_strComment ;
if( CEx080201Doc::s_UserManage.EditUser(newUser))
{
m_userList.SetItemText(nSel,0,newUser.m_strUserName);
CString strPopedom ;
strPopedom.Format("权限为%d",dlg.m_nPopedom);
m_userList.SetItemText(nSel,1,strPopedom);
m_userList.SetItemText(nSel,2,dlg.m_strComment);
}
else
AfxMessageBox("编辑用户失败");
}
}
void CEx080201View::OnDeleteUser()
{
POSITION pos = m_userList.GetFirstSelectedItemPosition();
if( NULL != pos )
{
int nSel = m_userList.GetNextSelectedItem(pos);
UINT uID = m_userList.GetItemData(nSel);
if(CEx080201Doc::s_UserManage.DeleteUser(uID))
m_userList.DeleteItem(nSel);
else
AfxMessageBox("删除用户失败");
}
}
void CEx080201View::EableButtons()
{
bool bCanEdit = false ;
POSITION pos = m_userList.GetFirstSelectedItemPosition();
if( NULL != pos )
{
int nSel = m_userList.GetNextSelectedItem(pos);
UINT uID = m_userList.GetItemData(nSel);
CUser * pUser = CEx080201Doc::s_UserManage.m_userInfos[uID] ;
if(CEx080201Doc::s_UserManage.IsHasManagePopedom(pUser))
bCanEdit = true ;
}
GetDlgItem(IDC_EDIT_USER)->EnableWindow(bCanEdit);
GetDlgItem(IDC_DELETE_USER)->EnableWindow(bCanEdit);
}
void CEx080201View::OnItemchangedUserList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
EableButtons() ;
*pResult = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -