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

📄 charmgrview.cpp

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 CPP
字号:
// CharMgrView.cpp : implementation file
//

#include "stdafx.h"
#include "rmtool.h"
#include "CharMgrView.h"
#include "ChildFrm2.h"
#include "Logmgr.h"

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


// 眠啊窍妨搁 MAX_TABNAMES甫 疵妨拎扼
char* TabNames[MAX_TABNAMES] = {
	"Tactics"
};


/////////////////////////////////////////////////////////////////////////////
// CCharMgrView

IMPLEMENT_DYNCREATE(CCharMgrView, CFormView)

CCharMgrView::CCharMgrView()
	: CFormView(CCharMgrView::IDD)
{
	//{{AFX_DATA_INIT(CCharMgrView)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_bMaximize = false;
	m_pParentFrame = 0L;
	m_pApp = 0L;
	m_nCurDbIndex = 0;
}

CCharMgrView::~CCharMgrView()
{
}

void CCharMgrView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCharMgrView)
	DDX_Control(pDX, IDC_COMBO_DB, m_ctrlComboDB);
	DDX_Control(pDX, IDC_COMBO_SERVERSET, m_ctrlComboServerset);
	DDX_Control(pDX, IDC_TAB_CHARMGR, m_ctrlMainTab);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCharMgrView, CFormView)
	//{{AFX_MSG_MAP(CCharMgrView)
	ON_WM_SIZE()
	ON_CBN_SELCHANGE(IDC_COMBO_DB, OnSelchangeComboDb)
	ON_CBN_SELCHANGE(IDC_COMBO_SERVERSET, OnSelchangeComboServerset)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCharMgrView diagnostics

#ifdef _DEBUG
void CCharMgrView::AssertValid() const
{
	CFormView::AssertValid();
}

void CCharMgrView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CCharMgrView message handlers

void CCharMgrView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	//TabControl阑 扩档快 荤捞令俊 嘎霸 农扁 炼沥
	if(m_pParentFrame)
	{
		CRect FrameRect;
		m_pParentFrame->GetClientRect(&FrameRect);

		FrameRect.top += 30;
		if(m_ctrlMainTab.m_hWnd)
		{
			m_ctrlMainTab.MoveWindow(&FrameRect);
		}
	}
}

void CCharMgrView::OnInitialUpdate() 
{
	m_pApp = (CRMToolApp*)AfxGetApp();
	//CRMToolDoc *pDoc = (CRMToolDoc*)GetDocument();
	//函荐 檬扁拳 
	m_pParentFrame = NULL;

	//Frame阑 FormView Resource农扁俊 嘎霸 
	ResizeParentToFit(FALSE);
	ResizeParentToFit(TRUE);
	GetParentFrame()->RecalcLayout();

	//FormView Window 啊厘磊府 Border 绝局扁..
	//SWP_NOSIZE   
	ModifyStyleEx(WS_EX_CLIENTEDGE,0,SWP_FRAMECHANGED);
	ModifyStyle(WS_BORDER,0,SWP_FRAMECHANGED);
	m_pParentFrame = (CChildFrame2*)GetParentFrame();

	CRect rect;
	m_pParentFrame->GetClientRect(&rect);
	//rect.top += 30;
	m_pParentFrame->m_minHeight = rect.Height();
	m_pParentFrame->m_minWidth = rect.Width();


	//[] 救狼 滴磊府 箭磊甫 Frame 牢侥 ID肺 窍磊..
	CChildFrame2 *pChild = (CChildFrame2*)GetParent();
	m_pApp->m_ServerDocCount++;	
	pChild->m_nFrameID = m_pApp->m_ServerDocCount;	//橇饭烙俊 磊扁 Frame ID 悸泼 
	pChild->DragAcceptFiles();
	
	CString str;
	str.Format("[S%02d] Raja Server Tool",m_pApp->m_ServerDocCount); 
	pChild->SetWindowText(str);

	UpdateData(false);		// 老窜 茄锅 诀单捞飘
	
	//TabControl阑 扩档快 荤捞令俊 嘎霸 农扁 炼沥 
	CRect FrameRect;
	m_pParentFrame->GetClientRect(&FrameRect);

	FrameRect.top += 30;

	if(m_ctrlMainTab.m_hWnd)
	{
		m_ctrlMainTab.MoveWindow(&FrameRect);

		//Tab Control 檬扁拳 
		TC_ITEM		item;

		for(int i=0; i<MAX_TABNAMES; i++ )
		{
			item.mask = TCIF_TEXT;
			item.pszText = TabNames[i];
			m_ctrlMainTab.InsertItem( i, &item );
		}
	}
	//促捞倔肺弊 积己 
	m_TacticInitDlg.Create(IDD_CHARMGR_TACTIC_INIT_DLG, this);

	//扁夯 贸澜栏肺 躲 ServerStatus 芒阑 焊咯绊, Tab 牧飘费 困俊 Dialog积己 棺 荤捞令 困摹 炼沥  
	FitDlgInView(&m_TacticInitDlg, &m_ctrlMainTab);		//Tab牧飘费俊 促捞倔肺弊 农扁 迭 嘎霸 炼沥 
	m_TacticInitDlg.ShowWindow(SW_SHOW);

	//ServerSet Combo 檬扁拳 
	m_ctrlComboServerset.InsertString(0,"--- Serverset Choice---");
	
	for(int i=1 ; i<=CURRENT_SERVERSET_NUM; i++)
	{
		m_ctrlComboServerset.InsertString(i,m_pApp->m_ServerSetInfo[ i - 1 ].szSetName);
	}
	m_ctrlComboServerset.SetCurSel( 1 );	

	//DBCatalog 霓焊冠胶 檬扁拳 
	InitDBCatalogCombo();
	GetChrList();	// 某腐磐 捞抚 掘绢坷扁

	InitForLog();	// 肺弊 檬扁拳
	
}

void CCharMgrView::FitDlgInView(CDialog * pDlg, CTabCtrl *pCtrl)
{
	CRect TabRect,ItemRect, DlgRect;	//TabRect篮 徘 牧飘费 傈眉 康开, ItemRect篮 困俊 徘何盒父..
	pCtrl->GetClientRect(&TabRect);
	pCtrl->GetItemRect(0, &ItemRect);
	
	DlgRect.left = 1;
	DlgRect.top = 31;
	DlgRect.right = TabRect.Width() - 2;	// 抛滴府 谅快 2侨伎
	DlgRect.bottom = TabRect.Height() - ItemRect.Height()-4; // 抛滴府 惑窍 2侨伎究

	pDlg->MoveWindow(DlgRect);
}

void CCharMgrView::InitDBCatalogCombo()
{
	
	m_ctrlComboDB.ResetContent();
	//DB Catalog 霓焊 檬扁拳 
	CString szDb,szTemp;	int j=0;
	for(int i=0 ; i< m_pApp->m_nDbCount[ m_nCurDbIndex ] ; i++)
	{
		szDb = m_pApp->m_DbSchema[ m_nCurDbIndex ][ i ].szSchemaBuffer;
		szTemp = szDb.Left(6);
		if(!szTemp.CompareNoCase("dragon"))		//dragon 包访 DB父 
		{
			m_ctrlComboDB.InsertString(j,szDb);

			if(!strcmp(g_CurDbName[ m_nCurDbIndex ],"") )
			{
				
				//kyo 020904
				if(!szDb.CompareNoCase( g_NationAccount.szDragon_DB_DefaultName[ m_nCurDbIndex ] ))
				{
					//泅犁 瘤沥秦霖 dBConnection俊 DB捞抚 历厘 矫虐绊 
					SetDBName( m_nCurDbIndex, g_NationAccount.szDragon_DB_DefaultName[ m_nCurDbIndex ] );	//kyo 020904
					
					m_ctrlComboDB.SetCurSel(j);	
				}
			}
			else
			{
				if(!szDb.CompareNoCase(g_CurDbName[ m_nCurDbIndex ]))
					m_ctrlComboDB.SetCurSel(j);	
			}
			j++;
		}
	} 
}



void CCharMgrView::OnSelchangeComboDb() 
{
	// TODO: Add your control notification handler code here
	int nIndex = m_ctrlComboDB.GetCurSel();
	char str[ 0xff ];
	char szDb[ 0xff ];
	m_ctrlComboDB.GetLBText(nIndex, szDb);

	WCHAR wszDb[ 0xff ];
	g_pDb->KSCToUnicode(szDb, wszDb);

	if(!g_pDb->ChangeDB(wszDb, (BYTE)DRAGON_DB[ m_nCurDbIndex ]))
	{
		CString z;
		z.Format( "Fail to change database: dbIndex =%d, dragonIndex=%d" , m_nCurDbIndex, DRAGON_DB[ m_nCurDbIndex ]);
		MessageBox( z );
		return;
	}

	SetDBName( m_nCurDbIndex, szDb );	//泅犁 瘤沥秦霖 dBConnection俊 DB捞抚 历厘 矫虐绊 


	GetDlgItemText(IDC_COMBO_NAME, str, 0xff);
	if(!strcmp(str,""))
		return;

}

void CCharMgrView::InitForLog()
{
/*	UpdateData(FALSE);

	m_pcLogMgr->InitVariable( m_ChrInfo, m_ChrInfoBinary, m_ChrInfoEtc, m_ChrLogInfo, m_ChrInfo.guildname[16] , m_dwGuildCode);
	
	m_pcLogMgr->SetUserIdName( m_ComboCharName, m_szCurLoginId ); 

	CString rServer, rDb;
	if( 0 > m_ctrlComboServerset.GetCurSel() ) return;
	m_ctrlComboServerset.GetLBText( m_ctrlComboServerset.GetCurSel(), rServer );

	if( 0>m_ctrlComboDB.GetCurSel() ) return;
	m_ctrlComboDB.GetLBText( m_ctrlComboDB.GetCurSel(), rDb );	
	m_pcLogMgr->SetServerDB( rServer, rDb );*/
}

bool CCharMgrView::GetChrList()
{
	char	szQuery[0xff];
	WCHAR	wszQuery[0xff];
	int list_max = 0;

	// 饭内靛 肮荐 掘扁
	sprintf(szQuery, "Select count(*) from RM_init_chr_list");
	g_pDb->KSCToUnicode(szQuery, wszQuery);
	int result = g_pDb->OpenRecord( wszQuery, &list_max, 1, (BYTE)TOTAL_DB);

	if(result < 0)
	{
		// 孽府 角菩促	//捞巴档 颇老肺 巢辨鳖?
		MessageBox("Can't find RM_init_chr_list Table on TotalDB");
		return false;
	}

	// 饭内靛 掘绢坷扁
	sprintf(szQuery, "Select [chr_name] from RM_init_chr_list");
	g_pDb->KSCToUnicode(szQuery, wszQuery);
	DBRECEIVEDATA * lpData = NULL;
	lpData = g_pDb->OpenRecordEx(wszQuery, DEFAULT_RETURNED_MAX_ROWS, DEFAULT_ROWS_PER_READ, (BYTE)TOTAL_DB);

	// 掘篮 饭内靛甫 糕滚函荐俊 汗荤
	char Temp[20];
	CString str;
	for(int i = 0; i < list_max; i++)
	{
		g_pDb->GetData(Temp, lpData, i, 0, (BYTE)TOTAL_DB);
		str = Temp;
		str.TrimRight(" ");
		m_vChrNames.push_back(str);
	}

	/*
	CString pTemp;
	for(i = 0; i < list_max; i++)
	{
		pTemp = m_vChrNames[i];
		MessageBox(pTemp.GetBuffer(pTemp.GetLength()));
	}
	char sstr[255];
	sprintf(sstr, "size = %d", m_vChrNames.size());

	MessageBox(sstr);

	*/

	return true;
}

void CCharMgrView::OnSelchangeComboServerset() 
{
	// TODO: Add your control notification handler code here
	int nIndex = m_ctrlComboServerset.GetCurSel();
	char str[ 0xff ];
	
	WCHAR wszDb[ 0xff ];
	m_nCurDbIndex = nIndex-1;	//DBChange
	
	g_pDb->KSCToUnicode(g_CurDbName[ m_nCurDbIndex ], wszDb);

	//扁夯 Dragon DB啊 酒囱 促弗 DB肺 悸泼 登绢 乐栏搁 弊 DB肺 嘎苗霖促. 
	if(strcmp(g_CurDbName[ m_nCurDbIndex ],"") )
	{
		if(!g_pDb->ChangeDB(wszDb, (BYTE)DRAGON_DB[ m_nCurDbIndex ]))
		{
			MessageBox("ChangeDB Failed! : CCharacterView::OnSelchangeComboServerset()");
			return;
		}
	}
	else	
	{
		SetDBName( m_nCurDbIndex, g_NationAccount.szDragon_DB_DefaultName[ m_nCurDbIndex ] );	//泅犁 瘤沥秦霖 dBConnection俊 DB捞抚 历厘 矫虐绊 
	}	


	InitDBCatalogCombo();
	OnSelchangeComboDb();
	
}

⌨️ 快捷键说明

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