📄 expertdlg.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 + -