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

📄 ds_rmtoolview.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -