// Account.cpp : implementation file // #include "stdafx.h" #include "LYFZIPManage.h" #include "Account.h" #include "MyMdi.H" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // Account IMPLEMENT_DYNCREATE(Account, CFormView) Account::Account() : CFormView(Account::IDD) { //{{AFX_DATA_INIT(Account) m_account = _T(""); m_psw = _T(""); m_psw2 = _T(""); m_bAddNew=1; //}}AFX_DATA_INIT } Account::~Account() { } void Account::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(Account) DDX_Control(pDX, IDC_COMBOname, m_comboname); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_Text(pDX, IDC_EDITaccount, m_account); DDX_Text(pDX, IDC_EDITpsw, m_psw); DDX_Text(pDX, IDC_EDITpsw2, m_psw2); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(Account, CFormView) //{{AFX_MSG_MAP(Account) ON_BN_CLICKED(IDC_BUTsave, OnBUTsave) ON_BN_CLICKED(IDC_BUTdel, OnBUTdel) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2) ON_BN_CLICKED(IDC_BUTadd, OnBUTadd) ON_BN_CLICKED(IDC_BUTbm1, OnBUTbm1) ON_BN_CLICKED(IDC_BUTbm6, OnBUTbm6) ON_BN_CLICKED(IDC_BUTbm2, OnBUTbm2) ON_BN_CLICKED(IDC_BUTbm3, OnBUTbm3) ON_BN_CLICKED(IDC_BUTbm4, OnBUTbm4) ON_BN_CLICKED(IDC_BUTbm5, OnBUTbm5) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // Account diagnostics #ifdef _DEBUG void Account::AssertValid() const { CFormView::AssertValid(); } void Account::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // Account message handlers void Account::OnInitialUpdate() { CFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); // Here we create the outbar control using the splitter as its parent // and setting its id to the first pane. CRect rc2; GetWindowRect(rc2); ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE); EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc,0); m_comboname.GetWindowRect (rc2); ScreenToClient(rc2); rc2.bottom +=200; m_comboname.MoveWindow (rc2); m_static1.SetFont (&g_titlefont); m_List1.SetHeadings( "账号, 60;姓名, 60" ); m_List1.LoadColumnInfo (112); g_sendhead.bsql=0; g_sendhead.code[0]=23; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(5);if(g_bSendOK==0)return; DataToArray(&m_List1array); for(int i=0; iSendMessage(WM_CLOSE); } void Account::ClearCtrl() { m_account = _T(""); m_psw = _T(""); m_psw2 = _T(""); m_comboname.SetCurSel (-1); UpdateData(false); for(int i=0; i<50; i++) { ((CButton*)GetDlgItem(IDC_CHECK1+i))->SetCheck(0); } } void Account::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here ListSelChange(); *pResult = 0; } void Account::ListSelChange() { POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { OnBUTadd(); return; } m_bAddNew=0; GetDlgItem(IDC_EDITaccount)->EnableWindow(0); GetDlgItem(IDC_COMBOname)->EnableWindow(0); GetDlgItem(IDC_EDITpsw)->EnableWindow(0); GetDlgItem(IDC_EDITpsw2)->EnableWindow(0); int iItem=m_List1.GetNextSelectedItem(pos); CString account=m_List1.GetItemText (iItem, 0); for(int ii=0; iiEnableWindow(1); GetDlgItem(IDC_COMBOname)->EnableWindow(1); GetDlgItem(IDC_EDITpsw)->EnableWindow(1); GetDlgItem(IDC_EDITpsw2)->EnableWindow(1); ClearCtrl(); } void Account::OnBUTsave() { // TODO: Add your control notification handler code here UpdateData(); CString name; CString rights=GetRights(); CString sql; if(m_bAddNew) { if(m_account.IsEmpty ()) { AfxMessageBox("资料不全!", MB_ICONINFORMATION);return; } int pos=m_comboname.GetCurSel (); if(pos==-1) { AfxMessageBox("资料不全!", MB_ICONINFORMATION);return; } m_comboname.GetLBText (pos, name); if(m_psw!=m_psw2) { AfxMessageBox("密码不一至!", MB_ICONINFORMATION);return; } if(IsExist(m_account,name)) { AfxMessageBox("已有此账号或姓名,请重新输入!", MB_ICONINFORMATION); return; } sql.Format ("insert into user(account,name,psw,rights)\ values('%s','%s','%s','%s')", m_account,name,m_psw,rights); sql+=USER_REF; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; GetData(); } else//修改 { sql.Format ("update user set rights='%s' where account='%s' ", rights, m_account); sql+=USER_REF; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; GetData(); } } void Account::OnBUTdel() { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { return; } if(AfxMessageBox("确认删除吗?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return; int iItem=m_List1.GetNextSelectedItem(pos); CString account=m_List1.GetItemText (iItem, 0); if(account=="admin") { AfxMessageBox("管理员不能删除"); return; } CString sql; sql.Format ("delete from user where account='%s' ", account); sql+=USER_REF; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; GetData(); } void Account::GetData() { g_sendhead.bsql=0; g_sendhead.code[0]=23; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(23); DataToArray(&m_List1array); FillGrid(); } BOOL Account::IsExist(CString account,CString name) { for(int i=0; iGetCheck()); ret+=temp; } return ret; } void Account::SetRights(CString rights) { for(int i=0; i=50)break; ((CButton*)GetDlgItem(IDC_CHECK1+i))->SetCheck(rights.GetAt (i)=='1'); } } void Account::OnBUTbm6() { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos) { int iItem=m_List1.GetNextSelectedItem(pos); CString account=m_List1.GetItemText (iItem, 0); if(account=="admin") { SetRights("0000000000\ 0000000000\ 0000000000\ 0000000000\ 0000000001"); return; } } SetRights("0000000000\ 0000000000\ 0000000000\ 0000000000\ 0000000000"); } void Account::OnBUTbm1() { // TODO: Add your control notification handler code here ((CButton*)GetDlgItem(IDC_CHECK1+0))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+15))->SetCheck(1); } void Account::OnBUTbm2() { // TODO: Add your control notification handler code here ((CButton*)GetDlgItem(IDC_CHECK1+4))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+5))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+8))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+15))->SetCheck(1); } void Account::OnBUTbm3() { // TODO: Add your control notification handler code here ((CButton*)GetDlgItem(IDC_CHECK1+5))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+6))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+7))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+8))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+9))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+10))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+11))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+12))->SetCheck(1); } void Account::OnBUTbm4() { // TODO: Add your control notification handler code here ((CButton*)GetDlgItem(IDC_CHECK1+16))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+17))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+18))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+19))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+20))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+21))->SetCheck(1); ((CButton*)GetDlgItem(IDC_CHECK1+22))->SetCheck(1); } void Account::OnBUTbm5() { // TODO: Add your control notification handler code here SetRights("1111111111\ 1111111111\ 1111111111\ 1111111111\ 1111111111"); }