aodadmdlg.cpp
来自「初学VC,编写的一个机房管理系统,功能基本上完善,但代码可读性不强.」· C++ 代码 · 共 280 行
CPP
280 行
// AODAdmDlg.cpp : implementation file
//
#include "stdafx.h"
#include "server.h"
#include "AODAdmDlg.h"
#include "AdminSet.h"
#include "AddAdminDlg.h"
#include "ViewAdmActionDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CString name;
extern CString glbname;
/////////////////////////////////////////////////////////////////////////////
// CAODAdmDlg dialog
int delcolumn1;
CAODAdmDlg::CAODAdmDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAODAdmDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAODAdmDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CAODAdmDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAODAdmDlg)
DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAODAdmDlg, CDialog)
//{{AFX_MSG_MAP(CAODAdmDlg)
//ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnRclickList1)
ON_COMMAND(IDC_VIEWADMIN, OnView)
ON_COMMAND(ID_DELETE, OnDelete)
ON_COMMAND(ID_CLEAR, OnClear)
ON_COMMAND(ID_ADDA, OnAddA)
ON_COMMAND(ID_DELETEA, OnDeleteA)
ON_MESSAGE(WM_ADD_ADM,OnAddAdm)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAODAdmDlg message handlers
BOOL CAODAdmDlg::OnInitDialog()
{
CDialog::OnInitDialog();
DWORD dwStyle;
RECT rect;
LV_COLUMN lvc;
m_ListCtrl.SetBkColor(RGB(255,255,255));
m_ListCtrl.SetTextBkColor(RGB(255,255,255));
dwStyle = m_ListCtrl.GetStyle();
dwStyle |= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT |LVS_SHOWSELALWAYS |LVS_EDITLABELS ;
m_ListCtrl.SetExtendedStyle(dwStyle);
m_ListCtrl.GetClientRect(&rect);
lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH |LVCF_FMT;
lvc.fmt=LVCFMT_LEFT;
lvc.iSubItem = 0;
lvc.pszText = _T("编 号");
lvc.cx = 50;
m_ListCtrl.InsertColumn(1,&lvc);
lvc.iSubItem = 1;
lvc.pszText = _T("ID");
lvc.cx = 70;
m_ListCtrl.InsertColumn(2,&lvc);
lvc.iSubItem = 2;
lvc.pszText = _T("姓 名");
lvc.cx = 60;
m_ListCtrl.InsertColumn(3,&lvc);
lvc.iSubItem = 3;
lvc.pszText = _T("权 限");
lvc.cx = 100;
m_ListCtrl.InsertColumn(4,&lvc);
lvc.iSubItem = 4;
lvc.pszText = _T("金 额(元)");
lvc.cx = 110;
m_ListCtrl.InsertColumn(5,&lvc);
LV_ITEM lvitem;
int numline=0;
lvitem.pszText="";
lvitem.mask=LVIF_TEXT;
lvitem.iSubItem=0;
CString *tag;
tag= new CString;
CAdminSet listmdb;
listmdb.Open();
CString smoney;
int counter=1;
CString scounter;
while(!listmdb.IsEOF())
{
switch(listmdb.m_tag)
{
case 0: tag->Format("%s","一般管理员");break;
case 1: tag->Format("%s","高级管理员");break;
};
smoney.Format("%d",listmdb.m_money);
scounter.Format("%d",counter);
lvitem.iItem=numline;
m_ListCtrl.InsertItem(&lvitem);
m_ListCtrl.SetItemText(numline,0,scounter);
m_ListCtrl.SetItemText(numline,1,listmdb.m_id);
m_ListCtrl.SetItemText(numline,2,listmdb.m_name);
m_ListCtrl.SetItemText(numline,3,*tag);//
m_ListCtrl.SetItemText(numline,4,smoney);
numline++;
counter++;
listmdb.MoveNext();
}
listmdb.Close();
delete tag;
return TRUE;
}
void CAODAdmDlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
//如果选中一行
if(pos)
{
int nItem = m_ListCtrl.GetNextSelectedItem(pos);
name=m_ListCtrl.GetItemText(nItem,2);
delcolumn1=nItem;
CMenu menu;
if (!menu.LoadMenu(IDR_MENU4))
return ;
CMenu* pSubMenu = menu.GetSubMenu(0);
if (!pSubMenu)
return ;
::SetMenuDefaultItem(pSubMenu->m_hMenu, 0, TRUE);
// Display the menu at the current mouse location. There's a "bug"
// (Microsoft calls it a feature) in Windows 95 that requires calling
// SetForegroundWindow. To find out more, search for Q135788 in MSDN.
//
CPoint mouse;
GetCursorPos(&mouse);
::SetForegroundWindow(m_hWnd);
::TrackPopupMenu(pSubMenu->m_hMenu, 0, mouse.x, mouse.y, 0,
m_hWnd, NULL);
*pResult = 0;
}
}
void CAODAdmDlg::OnAddA()
{
////////////增加管理员////////////
CAddAdminDlg dlg;
dlg.DoModal();
}
void CAODAdmDlg::OnClear()
{
///////////清空/////////////////
CString *pname= new CString;
pname->Format("name='%s'",name);
CAdminSet admin;
admin.m_strFilter=*pname;
admin.Open();
if(admin.GetRecordCount())
{ delete pname;
admin.Edit();
admin.m_money=0;
admin.Update();
admin.Requery();
}
admin.Close();
m_ListCtrl.SetItemText(delcolumn1,4,"0");
}
void CAODAdmDlg::OnDelete()
{
///////////////删除记录////////////
}
void CAODAdmDlg::OnDeleteA()
{
///////////删除管理员//////////////
if(name==glbname)
{
MessageBox("不能这样操作!","提醒",MB_OK);
return;
}
int choice=MessageBox("确认要删除吗?","确认",MB_YESNO|MB_ICONQUESTION);
if(choice==IDYES)
{
CString *pname= new CString;
pname->Format("name='%s'",name);
CAdminSet admin;
admin.m_strFilter=*pname;
admin.Open();
if(admin.GetRecordCount())
{ delete pname;
admin.Delete();
admin.Requery();
}
admin.Close();
m_ListCtrl.DeleteItem(delcolumn1);
}
}
void CAODAdmDlg::OnView()
{
///////////查看管理员记录//////////////////
CViewAdmActionDlg dlg;
dlg.DoModal();
}
void CAODAdmDlg::OnAddAdm()
{
int nColumnCount = m_ListCtrl.GetHeaderCtrl()->GetItemCount(),i=0;
for(i=0;i<nColumnCount;i++)
m_ListCtrl.DeleteItem(i);
LV_ITEM lvitem;
int numline=0;
lvitem.pszText="";
lvitem.mask=LVIF_TEXT;
lvitem.iSubItem=0;
CString *tag;
tag= new CString;
CAdminSet listmdb;
listmdb.Open();
CString smoney;
int counter=1;
CString scounter;
while(!listmdb.IsEOF())
{
switch(listmdb.m_tag)
{
case 0: tag->Format("%s","一般管理员");break;
case 1: tag->Format("%s","高级管理员");break;
};
smoney.Format("%d",listmdb.m_money);
scounter.Format("%d",counter);
lvitem.iItem=numline;
m_ListCtrl.InsertItem(&lvitem);
m_ListCtrl.SetItemText(numline,0,scounter);
m_ListCtrl.SetItemText(numline,1,listmdb.m_id);
m_ListCtrl.SetItemText(numline,2,listmdb.m_name);
m_ListCtrl.SetItemText(numline,3,*tag);//
m_ListCtrl.SetItemText(numline,4,smoney);
numline++;
counter++;
listmdb.MoveNext();
}
listmdb.Close();
delete tag;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?