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