⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 expertdlg.cpp

📁 视频播放控制器程序
💻 CPP
字号:
// ExpertDlg.cpp : implementation file
//

#include "stdafx.h"
#include "LiveController.h"
#include "ExpertDlg.h"   
#include "AddExpert.h"
#include "ViewExpert.h"
#include "DBInterface.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CExpertDlg dialog


CExpertDlg::CExpertDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CExpertDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CExpertDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CExpertDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CExpertDlg)
	DDX_Control(pDX, IDC_LIST_Expert, m_ctrExpertList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CExpertDlg, CDialog)
	//{{AFX_MSG_MAP(CExpertDlg)
	ON_NOTIFY(NM_CLICK, IDC_LIST_Expert, OnClickLISTExpert)
	ON_BN_CLICKED(IDC_BN_Expert_ADD, OnBNExpertADD)
	ON_BN_CLICKED(IDC_BN_Expert_DEL, OnBNExpertDEL)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


void CExpertDlg::RefreshExpertList()
{
	m_ctrExpertList.DeleteAllItems();
	ExpertListItem *pExpertItem = m_pDbinterface->GetExpertList();
	if ( pExpertItem )
	{
		CString strTemp;
		LVITEM tempLvi;
		tempLvi.mask = LVIF_IMAGE | LVIF_TEXT;
		tempLvi.stateMask = -1;
		int nIndex = 0;
		while ( pExpertItem )
		{
			// Expert ID
			tempLvi.iItem = nIndex;
			tempLvi.iSubItem = 0;
			tempLvi.pszText = (char *)(LPCTSTR)(pExpertItem->ExpertID);
			m_ctrExpertList.InsertItem(&tempLvi);

			// Expert Name
			tempLvi.iSubItem = 1;
			tempLvi.pszText = (char *)(LPCTSTR)(pExpertItem->ExpertName);
			m_ctrExpertList.SetItem( &tempLvi );

			// Expert PW
			tempLvi.iSubItem = 2;
			tempLvi.pszText = (char *)(LPCTSTR)pExpertItem->ExpertPW;
			m_ctrExpertList.SetItem( &tempLvi );

			// Expert Authority
			tempLvi.iSubItem = 3;
			if ( pExpertItem->ExpertAuthority == USER_AUTH_DENY ) {
				tempLvi.pszText = "禁止";
			}
			else
			if ( pExpertItem->ExpertAuthority == USER_AUTH_SCHE_RELATED ) {
				tempLvi.pszText = "普通";
			}
			else
			if ( pExpertItem->ExpertAuthority == USER_AUTH_ADMIN ) {
				tempLvi.pszText = "超级";
			}
			m_ctrExpertList.SetItem( &tempLvi );

			// Expert Rank
			char ranktemp[20];
			_itoa(pExpertItem->ExpertRank,ranktemp,10);
			tempLvi.iSubItem = 4;
			tempLvi.pszText = (char *)ranktemp;
			m_ctrExpertList.SetItem( &tempLvi );
			pExpertItem = pExpertItem->pNext;
			nIndex++;
		}
	}
}



/////////////////////////////////////////////////////////////////////////////
// CExpertDlg message handlers

BOOL CExpertDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	LVCOLUMN	lvcol;
	lvcol.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT;
	lvcol.fmt = LVCFMT_LEFT;
	lvcol.pszText = _T( "专家用户号" );
	lvcol.iSubItem = 1;
	m_ctrExpertList.InsertColumn( 0, &lvcol );
	m_ctrExpertList.SetColumnWidth( 0, 84 );
	lvcol.pszText = _T( "专家姓名" );
	m_ctrExpertList.InsertColumn( 1, &lvcol );
	m_ctrExpertList.SetColumnWidth( 1, 130 );
	lvcol.pszText = _T( "登录密码" );
	m_ctrExpertList.InsertColumn( 2, &lvcol );
	m_ctrExpertList.SetColumnWidth( 2, 80 );
	lvcol.pszText = _T( "权限" );
	m_ctrExpertList.InsertColumn( 3, &lvcol );
	m_ctrExpertList.SetColumnWidth( 3, 50 );
	lvcol.pszText = _T( "等级" );
	m_ctrExpertList.InsertColumn( 4, &lvcol );
	m_ctrExpertList.SetColumnWidth( 4, 40 );
	DWORD dwStyle = m_ctrExpertList.GetExtendedStyle();
	dwStyle |= LVS_EX_FULLROWSELECT;
	dwStyle |= LVS_EX_GRIDLINES;
    m_ctrExpertList.SetExtendedStyle(dwStyle);
	m_nSelectExpertItem = -1;

	RefreshExpertList();
	GetDlgItem(IDC_BN_Expert_ADD)->EnableWindow(TRUE);
	GetDlgItem(IDC_BN_Expert_DEL)->EnableWindow(FALSE);
	
	return TRUE;  
	// return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}

void CExpertDlg::OnClickLISTExpert(NMHDR* pNMHDR, LRESULT* pResult) 
{
	LPNMITEMACTIVATE pNmitem = (LPNMITEMACTIVATE)pNMHDR;
	UINT uFlags;
	m_nSelectExpertItem = m_ctrExpertList.HitTest( CPoint(pNmitem->ptAction), &uFlags );
	if ( m_nSelectExpertItem < 0 )
	{
		GetDlgItem(IDC_BN_Expert_DEL)->EnableWindow(FALSE);
		*pResult = 0;
		return;
	}
	
	GetDlgItem(IDC_BN_Expert_DEL)->EnableWindow(TRUE);
	*pResult = 0;
}

void CExpertDlg::OnBNExpertADD() 
{
	CAddExpert dlg;
	if ( dlg.DoModal() != IDOK ) {
		return;
	}
	
	// 填入获取的内容
	ExpertListItem ExpertItem;
	ExpertItem.ExpertID = dlg.m_ExpertID;
	ExpertItem.ExpertName = dlg.m_ExpertName;
	ExpertItem.ExpertPW = dlg.m_ExpertPW;
	ExpertItem.ExpertAuthority = dlg.m_nPrivilege;
	ExpertItem.ExpertRank = atoi((char *)(LPCTSTR)dlg.m_ExpertRank);
	m_pDbinterface->AddExpert(&ExpertItem); 
	RefreshExpertList();
}

void CExpertDlg::OnBNExpertDEL() 
{
	// TODO: Add your control notification handler code here
	CString IDtemp;
	POSITION pos = m_ctrExpertList.GetFirstSelectedItemPosition();
	if (pos)
	{
		int index = m_ctrExpertList.GetNextSelectedItem(pos);
		IDtemp = m_ctrExpertList.GetItemText(index,0);
		m_pDbinterface->RemoveExpertItem(IDtemp);
		RefreshExpertList();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -