【VC开源代码栏目提醒】:网学会员在VC开源代码频道为大家收集整理了DeleteUserDlg.cpp提供大家参考,希望对大家有所帮助!
// DeleteUserDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MedicAdmin.h"
#include "DeleteUserDlg.h"
#include "medi
cadmindoc.h"
#include "mainFrm.h"
#include "userTreeView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDeleteUserDlg dialog
CDeleteUserDlg::CDeleteUserDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDeleteUserDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDeleteUserDlg)
m_deleteUserAccount = _T("");
m_deleteUserType = _T("");
//}}AFX_DATA_INIT
}
void CDeleteUserDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDeleteUserDlg)
DDX_Control(pDX, IDC_DELETEUSER_TYPE_COMBO, m_deleteUserTypeCombo);
DDX_Control(pDX, IDC_LIST1, m_deleteUserList);
DDX_Text(pDX, IDC_DELETEUSER_ACCOUNT_EDIT, m_deleteUserAccount);
DDX_CBString(pDX, IDC_DELETEUSER_TYPE_COMBO, m_deleteUserType);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDeleteUserDlg, CDialog)
//{{AFX_MSG_MAP(CDeleteUserDlg)
ON_CBN_SELCHANGE(IDC_DELETEUSER_TYPE_COMBO, OnSelchangeDeleteuserTypeCombo)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_BN_CLICKED(IDCANCEL, OnExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDeleteUserDlg message handlers
void CDeleteUserDlg::OnSelchangeDeleteuserTypeCombo()
{
// TODO: Add your control notification handler code here
int Item=m_deleteUserTypeCombo.GetCurSel();
CString str;
m_deleteUserTypeCombo.GetLBText(Item,str);
if(str=="所有类型")
{
theSet->m_strFilter="";
}
else
{
theSet->m_strFilter="UserClassification='"+str+"'";
}
theSet->Requery();
m_deleteUserList.DeleteAllItems();
for(int j=0;;j++)
{
if(theSet->IsEOF())
{
break;
}
m_deleteUserList.InsertItem(j,theSet->m_UserAccount);
m_deleteUserList.SetItemText(j,1,theSet->m_UserPassword);
m_deleteUserList.SetItemText(j,2,theSet->m_UserClassification);
m_deleteUserList.SetItemText(j,3,theSet->m_UserName);
theSet->MoveNext();
}
}
BOOL CDeleteUserDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CMedicAdminDoc* pDoc=(CMedicAdminDoc*)((CMainFrame*)AfxGetMainWnd())->GetActiveDocument();
theSet=&pDoc->theUserSet;
theSet->m_strFilter="";
theSet->Requery();
CString userColumn[]={"用户账号","用户密码","用户类别","用户"};
for(int i=0;i<4;i++){
m_deleteUserList.InsertColumn(i,userColumn[i],LVCFMT_LEFT,100,i);
}
for(int j=0;;j++)
{
if(theSet->IsEOF())
{
break;
}
m_deleteUserList.InsertItem(j,theSet->m_UserAccount);
m_deleteUserList.SetItemText(j,1,theSet->m_UserPass
word);
m_deleteUserList.SetItemText(j,2,theSet->m_UserClassification);
m_deleteUserList.SetItemText(j,3,theSet->m_UserName);
theSet->MoveNext();
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDeleteUserDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData();
if(m_deleteUserAccount=="")
{
AfxMessageBox("请输入要删除的用户账号");
}
else
{
int result=AfxMessageBox("确实要删除该用户吗?",MB_OKCANCEL);
if(result==IDOK)
{
CString copyFilter=theSet->m_strFilter;
CUser* user=new CUser;
user->SetAccount(m_deleteUserAccount);
CMedicAdminDoc* pDoc=(CMedicAdminDoc*)((CMainFrame*)AfxGetMainWnd())->GetActiveDocument();
CUser* theUser=&pDoc->theUser;
theUser->DeleteUser(user,theSet);
theSet->m_strFilter=copyFilter;
theSet->Requery();
m_deleteUserList.DeleteAllItems();
for(int j=0;;j++)
{
if(theSet->IsEOF())
{
break;
}
m_deleteUserList.InsertItem(j,theSet->m_UserAccount);
m_deleteUserList.SetItemText(j,1,theSet->m_UserPassword);
m_deleteUserList.SetItemText(j,2,theSet->m_UserClassification);
m_deleteUserList.SetItemText(j,3,theSet->m_UserName);
theSet->MoveNext();
}
m_deleteUserAccount="";
UpdateData(FALSE);
}
}
//CDialog::OnOK();
}
void CDeleteUserDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResu