📄 ds_rmtoolview.cpp
字号:
// DS_RMToolView.cpp : implementation of the CDS_RMToolView class
//
#include "stdafx.h"
#include "DS_RMTool.h"
#include "DS_RMToolDoc.h"
#include "CharacterDoc.h"
#include "DS_RMToolView.h"
#include "RMNetwork.h"
#include "MasInfoManager.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDS_RMToolView
IMPLEMENT_DYNCREATE(CDS_RMToolView, CFormView)
BEGIN_MESSAGE_MAP(CDS_RMToolView, CFormView)
//{{AFX_MSG_MAP(CDS_RMToolView)
ON_BN_CLICKED(IDC_USERBTN_SEARCH, OnUserbtnSearch)
ON_BN_CLICKED(IDC_RADIO_USERID, OnRadioUserID)
ON_BN_CLICKED(IDC_RADIO_CHARNAME, OnRadioCharName)
ON_BN_CLICKED(IDC_RADIO_JUMIN, OnRadioJumin)
ON_BN_CLICKED(IDC_BTN_CHECKNAME, OnBtnCheckname)
ON_BN_CLICKED(IDC_BTN_RECOVER, OnBtnRecover)
ON_BN_CLICKED(IDC_BUTTON_CHANGE_USERLEVEL, OnButtonChangeUserlevel)
ON_NOTIFY(NM_CLICK, IDC_LIST_CHAR, OnClickListChar)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_CHAR, OnDblclkListChar)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_CHARINFO, OnDblclkListCharInfo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDS_RMToolView construction/destruction
CDS_RMToolView::CDS_RMToolView()
: CFormView(CDS_RMToolView::IDD)
{
//{{AFX_DATA_INIT(CDS_RMToolView)
m_nSearchKind = -1;
//}}AFX_DATA_INIT
// TODO: add construction code here
m_wPower = eOperPower_Max;
}
CDS_RMToolView::~CDS_RMToolView()
{
}
void CDS_RMToolView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDS_RMToolView)
DDX_Control(pDX, IDC_BUTTON_CHANGE_USERLEVEL, m_btnChangeUserlevel);
DDX_Control(pDX, IDC_LIST_CHARINFO, m_lcCharInfo);
DDX_Control(pDX, IDC_LIST_CHAR, m_listCharacter);
DDX_Control(pDX, IDC_COMBO_USERLEVEL, m_cbUserLevel);
DDX_Control(pDX, IDC_EDIT_RECOVER, m_etRecover);
DDX_Control(pDX, IDC_EDIT_DELETE, m_etDelete);
DDX_Control(pDX, IDC_EDIT_SEARCH, m_etSearch);
DDX_Control(pDX, IDC_USER_STATUS, m_stStatus);
DDX_Radio(pDX, IDC_RADIO_USERID, m_nSearchKind);
DDX_Control(pDX, IDC_BTN_CHECKNAME, m_btnCheckName);
DDX_Control(pDX, IDC_BTN_RECOVER, m_btnRecover);
//}}AFX_DATA_MAP
// 沥焊芒 包访 函荐
for( int i = 0; i < eUserTemp_MAX; ++i )
DDX_Control(pDX, IDC_USER_ID+i, m_StatusEdit[i]);
}
BOOL CDS_RMToolView::PreCreateWindow(CREATESTRUCT& cs)
{
return CFormView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CDS_RMToolView diagnostics
#ifdef _DEBUG
void CDS_RMToolView::AssertValid() const
{
CFormView::AssertValid();
}
void CDS_RMToolView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CDS_RMToolDoc* CDS_RMToolView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDS_RMToolDoc)));
return (CDS_RMToolDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CDS_RMToolView message handlers
BOOL CDS_RMToolView::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
// TODO: Add your specialized code here and/or call the base class
if( nID == (UINT)m_etSearch.GetDlgCtrlID() && nCode == 1281 )
{
if( &m_etSearch == GetFocus() )
OnUserbtnSearch();
}
return CFormView::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
void CDS_RMToolView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
ResizeParentToFit();
CDS_RMToolApp* pApp = (CDS_RMToolApp*)AfxGetApp();
m_wPower = pApp->GetCurOperatorPower();
if( m_wPower == eOperPower_Master )
{
m_btnChangeUserlevel.EnableWindow( TRUE );
// m_btnCheckName.EnableWindow( TRUE );
// m_btnRecover.EnableWindow( TRUE );
}
else
{
m_btnChangeUserlevel.EnableWindow( FALSE );
m_btnCheckName.EnableWindow( FALSE );
m_btnRecover.EnableWindow( FALSE );
}
// Control 檬扁拳
InitUserInfo();
InitListControl();
m_nSearchKind = 0;
UpdateData( FALSE );
char temp[256];
for( int i = 1; i < 11; ++i )
m_cbUserLevel.AddString( GetUserLevel( i, temp ) );
CFont* pFont = GetFont();
LOGFONT lf;
pFont->GetLogFont( &lf );
m_Font.CreatePointFont(100, "Arial");
m_lcCharInfo.SetFont( &m_Font );
m_listCharacter.SetFont( &m_Font );
// m_etSearch.SetLimitText( 16 );
}
void CDS_RMToolView::InitUserInfo()
{
for( int i = 0; i < eUserTemp_MAX; ++i )
m_StatusEdit[i].SetWindowText( "" );
m_stStatus.SetBitmap( ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1)) );
m_listCharacter.DeleteAllItems();
}
void CDS_RMToolView::InitListControl()
{
char* column[4] = { "UserIdx", "CharacterIdx", "CharacterName", "CreateDate" };
int columnsize[4] = { 80, 100, 120, 120 };
// listctrl column 汲沥
LV_COLUMN lvcolumn;
lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
lvcolumn.fmt = LVCFMT_CENTER;
for( int i = 0; i < 4; ++i )
{
lvcolumn.iSubItem = i;
lvcolumn.cx = columnsize[i];
lvcolumn.pszText = column[i];
m_lcCharInfo.InsertColumn( i, &lvcolumn );
}
// style
DWORD dwExStyle = m_lcCharInfo.GetExtendedStyle();
dwExStyle |= LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT;
m_lcCharInfo.SetExtendedStyle( dwExStyle );
char* tcolumn[8] = { "ChrIdx", "State", "Name", "CreateDate", "IP", "DeleteDate", "IP", "RecoverDate" };
int tcolumnsize[8] = { 50, 70, 80, 120, 80, 120, 80, 120 };
// listctrl column 汲沥
lvcolumn;
lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
lvcolumn.fmt = LVCFMT_CENTER;
for( i = 0; i < 8; ++i )
{
lvcolumn.iSubItem = i;
lvcolumn.cx = tcolumnsize[i];
lvcolumn.pszText = tcolumn[i];
m_listCharacter.InsertColumn( i, &lvcolumn );
}
// style
dwExStyle = m_listCharacter.GetExtendedStyle();
dwExStyle |= LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT;
m_listCharacter.SetExtendedStyle( dwExStyle );
}
void CDS_RMToolView::SetUserInfo(USERINFO* user)
{
char buff[256]={0,};
m_StatusEdit[eUserTemp_ID].SetWindowText(user->strID);
m_StatusEdit[eUserTemp_PWD].SetWindowText(user->strPass);
m_StatusEdit[eUserTemp_NAME].SetWindowText(user->strName);
sprintf(buff, "%s", user->strIdCard);
m_StatusEdit[eUserTemp_IDCARD].SetWindowText(buff);
sprintf(buff, "%s", user->strPhon);
m_StatusEdit[eUserTemp_PHONE].SetWindowText(buff);
m_StatusEdit[eUserTemp_MAIL].SetWindowText(user->strEmail);
m_StatusEdit[eUserTemp_BIRTH].SetWindowText(user->strRegDateTime);
m_StatusEdit[eUserTemp_LOGIN].SetWindowText(user->strLastLoginTime);
m_StatusEdit[eUserTemp_LOGOUT].SetWindowText(user->strLastLogoutTime);
// m_StatusEdit[eUserTemp_TOTAL].SetWindowText(user->strTotalTime);
m_StatusEdit[eUserTemp_LEVEL].SetWindowTextEx( GetUserLevel(user->wUserLevel, buff ) );
if( user->bLoginFlag )
m_stStatus.SetBitmap( ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP3)) );
else
m_stStatus.SetBitmap( ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP2)) );
CDS_RMToolDoc* pDoc = GetDocument();
pDoc->SetUserInfo(user);
m_cbUserLevel.EnableWindow( TRUE );
m_cbUserLevel.SetCurSel( user->wUserLevel-1 );
}
void CDS_RMToolView::SetSimpleCharInfo( BYTE Count, SIMPlECHARACTERINFO* simple )
{
m_lcCharInfo.DeleteAllItems();
char temp[256];
LV_ITEM lvitem;
for( int i = 0; i < Count; ++i )
{
lvitem.iItem = m_lcCharInfo.GetItemCount(); // 青
lvitem.iSubItem = 0;
lvitem.mask = LVIF_TEXT;
lvitem.stateMask = LVIS_SELECTED;
lvitem.state = INDEXTOSTATEIMAGEMASK(1);
lvitem.pszText = itoa( simple[i].dwUserIdx, temp, 10 );
m_lcCharInfo.InsertItem( &lvitem );
m_lcCharInfo.SetItemText( lvitem.iItem, 1, itoa( simple[i].dwCharNo, temp, 10 ) );
m_lcCharInfo.SetItemText( lvitem.iItem, 2, simple[i].strName ); // name
m_lcCharInfo.SetItemText( lvitem.iItem, 3, simple[i].strCreateDate ); // date
}
}
void CDS_RMToolView::SetCharacterCreateInfo( BYTE Count, CHARACTERCREATEINFO* pInfo )
{
m_listCharacter.DeleteAllItems();
char temp[256];
LV_ITEM lvitem;
for( int i = 0; i < Count; ++i )
{
lvitem.iItem = m_listCharacter.GetItemCount(); // 青
lvitem.iSubItem = 0;
lvitem.mask = LVIF_TEXT;
lvitem.stateMask = LVIS_SELECTED;
lvitem.state = INDEXTOSTATEIMAGEMASK(1);
lvitem.pszText = itoa( pInfo[i].dwCharIdx, temp, 10 );
m_listCharacter.InsertItem( &lvitem );
switch( pInfo[i].dwFlag )
{
case 1: m_listCharacter.SetItemText( lvitem.iItem, 1, "Create" ); break;
case 2: m_listCharacter.SetItemText( lvitem.iItem, 1, "Delete" ); break;
case 3: m_listCharacter.SetItemText( lvitem.iItem, 1, "Recover" ); break;
}
m_listCharacter.SetItemText( lvitem.iItem, 2, pInfo[i].sName );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -