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 + -
显示快捷键?