📄 linkgameexdlg.cpp
字号:
if( QIPAIYOUXI == x) { m_QPYXList.InsertColumn(0, "Name", LVCFMT_LEFT, 110); m_tempStr = "QPYX";}
if( DANJIYOUXI == x) { m_DJYXList.InsertColumn(0, "Name", LVCFMT_LEFT, 110); m_tempStr = "DJYX";}
if( XIUXIANYOUXI == x) { m_XXYXList.InsertColumn(0, "Name", LVCFMT_LEFT, 110); m_tempStr = "XXYX";}
MSXML::IXMLDOMDocumentPtr m_pXMLDoc;
m_pXMLDoc.CreateInstance(__uuidof(MSXML::DOMDocument));
m_pXMLDoc->async = FALSE;
BOOL bLoad = m_pXMLDoc->load(L"XMLS\\GameName.xml");
MSXML::IXMLDOMElementPtr pParent = m_pXMLDoc->documentElement;
for (MSXML::IXMLDOMNodePtr pChild = pParent->firstChild; NULL != pChild; pChild = pChild->nextSibling)
{
if (MSXML::NODE_TEXT != pChild->nodeType)
{
if(0 == strcmp(pChild->nodeName , m_tempStr))
{
for (MSXML::IXMLDOMNodePtr pChildvalue = pChild->firstChild; NULL != pChildvalue; pChildvalue = pChildvalue->nextSibling)
{
if (MSXML::NODE_TEXT != pChildvalue->nodeType)
{
// 读取游戏名称
if(0 == strcmp((LPCTSTR)pChildvalue->nodeName , "Name"))
{
BSTR str;
pChildvalue->get_text(&str);
_bstr_t btmp(str);
TRACE("%s\n",(LPCTSTR)btmp);
lvitem.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
lvitem.iItem = i;
lvitem.iSubItem = 0;
lvitem.pszText = btmp;
lvitem.iImage = 0;
lvitem.lParam = i++;
if( WANGLUODUIZHAN == x) iPos = this->m_WLDZList.InsertItem(&lvitem);
if( WANGLUOYOUXI == x) iPos = this->m_WLYXList.InsertItem(&lvitem);
if( QIPAIYOUXI == x) iPos = this->m_QPYXList.InsertItem(&lvitem);
if( DANJIYOUXI == x) iPos = this->m_DJYXList.InsertItem(&lvitem);
if( XIUXIANYOUXI == x) iPos = this->m_XXYXList.InsertItem(&lvitem);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = iPos;
//m_WLDZList.InsertItem( 0, szName);
}
}
}
}
}
}
}
catch(...)
{}
CoUninitialize();
}
void CLinKGameExDlg::ResetRoomList(DWORD nGameTpye, DWORD nWhere)
{
this->m_RoomList.DeleteAllItems(); // 删除所有记录从新加载
CoInitialize(NULL);
char *szArea;
CString m_str = "";
switch(nWhere)
{
case SHANGHAI: szArea = "ShangHai"; break;
case BEIJING : szArea = "BeiJing"; break;
}
try
{
LV_ITEM lvitem;
int i = 0, iPos;
CString m_tempStr;
if( WANGLUODUIZHAN == nGameTpye) { m_tempStr = "WLDZ"; }
if( WANGLUOYOUXI == nGameTpye) { m_tempStr = "WLYX"; }
if( QIPAIYOUXI == nGameTpye) { m_tempStr = "QPYX"; }
if( DANJIYOUXI == nGameTpye) { m_tempStr = "DJYX"; }
if( XIUXIANYOUXI == nGameTpye) { m_tempStr = "XXYX"; }
MSXML::IXMLDOMDocumentPtr m_pXMLDoc;
m_pXMLDoc.CreateInstance(__uuidof(MSXML::DOMDocument));
m_pXMLDoc->async = FALSE;
BOOL bLoad = m_pXMLDoc->load(L"XMLS\\RoomInfo.xml");
MSXML::IXMLDOMElementPtr pParent = m_pXMLDoc->documentElement;
for (MSXML::IXMLDOMNodePtr pChild = pParent->firstChild; NULL != pChild; pChild = pChild->nextSibling)
{
if (MSXML::NODE_TEXT != pChild->nodeType)
{
if(0 == strcmp(pChild->nodeName , m_tempStr))
{
for (MSXML::IXMLDOMNodePtr pChildvalue = pChild->firstChild; NULL != pChildvalue; pChildvalue = pChildvalue->nextSibling)
{
if (MSXML::NODE_TEXT != pChildvalue->nodeType)
{
// 读取游戏名称
if(0 == strcmp((LPCTSTR)pChildvalue->nodeName , "Area"))
{
BSTR str;
pChildvalue->get_text(&str);
_bstr_t btmp(str);
TRACE("%s\n",(LPCTSTR)btmp);
m_str = (LPCTSTR)btmp;
}
if( szArea == m_str)
{
if( (0 == strcmp((LPCTSTR)pChildvalue->nodeName, "RoomName")))
{
BSTR str;
pChildvalue->get_text(&str);
_bstr_t btmp(str);
TRACE("%s\n",(LPCTSTR)btmp);
lvitem.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
lvitem.iItem = i;
lvitem.iSubItem = 0;
lvitem.pszText = btmp;
lvitem.iImage = 0;
lvitem.lParam = i;
iPos = this->m_RoomList.InsertItem(&lvitem);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = iPos;
}
if( (0 == strcmp((LPCTSTR)pChildvalue->nodeName , "Count")))
{
BSTR str;
pChildvalue->get_text(&str);
_bstr_t btmp(str);
TRACE("%s\n",(LPCTSTR)btmp);
lvitem.iSubItem = 1;
lvitem.pszText = btmp;
m_RoomList.SetItem(&lvitem);
}
if( (0 == strcmp((LPCTSTR)pChildvalue->nodeName , "Ping")))
{
BSTR str;
pChildvalue->get_text(&str);
_bstr_t btmp(str);
TRACE("%s\n",(LPCTSTR)btmp);
lvitem.iSubItem = 2;
lvitem.pszText = btmp;
m_RoomList.SetItem(&lvitem);
}
}
}
}
}
i++;
}
}
}
catch(...)
{}
CoUninitialize();
}
void CLinKGameExDlg::InitRoomList()
{
int i;
LV_COLUMN lvcol;
lvcol.mask = LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
lvcol.fmt = LVCFMT_CENTER;
i = 0;
lvcol.pszText = "RoomName";
lvcol.iSubItem = i;
lvcol.cx = 150;
m_RoomList.InsertColumn(i++,&lvcol);
lvcol.pszText = "OnLine";
lvcol.iSubItem = i;
lvcol.cx = 150;
m_RoomList.InsertColumn(i++,&lvcol);
lvcol.pszText = "Ping";
lvcol.iSubItem = i;
lvcol.cx = 150;
m_RoomList.InsertColumn(i++,&lvcol);
}
void CLinKGameExDlg::OnClickWldzlist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos = m_WLDZList.GetFirstSelectedItemPosition();
int nIndex = m_WLDZList.GetNextSelectedItem(pos); // 得到项目索引
if( -1 != nIndex)
{
this->m_LinKIE.SetWidth(0);
this->m_LinKIE.SetHeight(0);
ResetAreaList( WANGLUODUIZHAN, m_WLDZList.GetItemText(nIndex,0));
this->m_AreaList.ShowWindow(1);
this->m_RoomList.ShowWindow(1);
ResetRoomList( WANGLUODUIZHAN, SHANGHAI);
}
*pResult = 0;
}
void CLinKGameExDlg::OnClickWlyxlist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos = m_WLYXList.GetFirstSelectedItemPosition();
int nIndex = m_WLYXList.GetNextSelectedItem(pos); // 得到项目索引
if( -1 != nIndex)
{
this->m_LinKIE.SetWidth(0);
this->m_LinKIE.SetHeight(0);
ResetAreaList( WANGLUOYOUXI, m_WLYXList.GetItemText(nIndex,0));
this->m_AreaList.ShowWindow(1);
this->m_RoomList.ShowWindow(1);
ResetRoomList( WANGLUOYOUXI, BEIJING);
}
*pResult = 0;
}
void CLinKGameExDlg::OnClickQpyxlist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos = m_QPYXList.GetFirstSelectedItemPosition();
int nIndex = m_QPYXList.GetNextSelectedItem(pos); // 得到项目索引
if( -1 != nIndex)
{
this->m_LinKIE.SetWidth(0);
this->m_LinKIE.SetHeight(0);
ResetAreaList( QIPAIYOUXI, m_QPYXList.GetItemText(nIndex,0));
this->m_AreaList.ShowWindow(1);
this->m_RoomList.ShowWindow(1);
ResetRoomList( QIPAIYOUXI, SHANGHAI);
}
*pResult = 0;
}
void CLinKGameExDlg::OnClickDjyxlist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos = m_DJYXList.GetFirstSelectedItemPosition();
int nIndex = m_DJYXList.GetNextSelectedItem(pos); // 得到项目索引
if( -1 != nIndex)
{
this->m_LinKIE.SetWidth(0);
this->m_LinKIE.SetHeight(0);
ResetAreaList( DANJIYOUXI, m_DJYXList.GetItemText(nIndex,0));
this->m_AreaList.ShowWindow(1);
this->m_RoomList.ShowWindow(1);
ResetRoomList( DANJIYOUXI, SHANGHAI);
}
*pResult = 0;
}
void CLinKGameExDlg::OnClickXxyxlist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos = m_XXYXList.GetFirstSelectedItemPosition();
int nIndex = m_XXYXList.GetNextSelectedItem(pos); // 得到项目索引
if( -1 != nIndex)
{
this->m_LinKIE.SetWidth(0);
this->m_LinKIE.SetHeight(0);
ResetAreaList( XIUXIANYOUXI, m_XXYXList.GetItemText(nIndex,0));
this->m_AreaList.ShowWindow(1);
this->m_RoomList.ShowWindow(1);
ResetRoomList( XIUXIANYOUXI, SHANGHAI);
}
*pResult = 0;
}
void CLinKGameExDlg::ResetAreaList(DWORD nGameType, CString strGameName)
{
for(int xIndex = 0; xIndex < this->m_AreaList.GetCount(); xIndex++) this->m_AreaList.DeleteString(xIndex);
CString m_str;
BOOL m_ChkAreaList = FALSE;
CoInitialize(NULL);
try
{
int i = 0;
CString m_tempStr;
if( WANGLUODUIZHAN == nGameType) {m_WLDZList.InsertColumn(0, "Name", LVCFMT_LEFT, 110); m_tempStr = "WLDZ";}
if( WANGLUOYOUXI == nGameType) {m_WLYXList.InsertColumn(0, "Name", LVCFMT_LEFT, 110); m_tempStr = "WLYX";}
if( QIPAIYOUXI == nGameType) {m_QPYXList.InsertColumn(0, "Name", LVCFMT_LEFT, 110); m_tempStr = "QPYX";}
if( DANJIYOUXI == nGameType) {m_DJYXList.InsertColumn(0, "Name", LVCFMT_LEFT, 110); m_tempStr = "DJYX";}
if( XIUXIANYOUXI == nGameType) {m_XXYXList.InsertColumn(0, "Name", LVCFMT_LEFT, 110); m_tempStr = "XXYX";}
MSXML::IXMLDOMDocumentPtr m_pXMLDoc;
m_pXMLDoc.CreateInstance(__uuidof(MSXML::DOMDocument));
m_pXMLDoc->async = FALSE;
BOOL bLoad = m_pXMLDoc->load(L"XMLS\\RoomInfo.xml");
MSXML::IXMLDOMElementPtr pParent = m_pXMLDoc->documentElement;
for (MSXML::IXMLDOMNodePtr pChild = pParent->firstChild; NULL != pChild; pChild = pChild->nextSibling)
{
if (MSXML::NODE_TEXT != pChild->nodeType)
{
if(0 == strcmp(pChild->nodeName , m_tempStr))
{
for (MSXML::IXMLDOMNodePtr pChildvalue = pChild->firstChild; NULL != pChildvalue; pChildvalue = pChildvalue->nextSibling)
{
if (MSXML::NODE_TEXT != pChildvalue->nodeType)
{
// 读取地区名称
if(0 == strcmp((LPCTSTR)pChildvalue->nodeName , "Area"))
{
BSTR str;
pChildvalue->get_text(&str);
_bstr_t btmp(str);
TRACE("%s\n",(LPCTSTR)btmp);
m_ChkAreaList = FALSE;
for(int j = 0; j < this->m_AreaList.GetCount(); j++)
{
this->m_AreaList.GetText(j, m_str);
if( 0 == strcmp(m_str, (LPCTSTR)btmp))
m_ChkAreaList = TRUE;
}
if(!m_ChkAreaList) { this->m_AreaList.AddString((LPCTSTR)btmp); }
}
}
}
}
}
}
}
catch(...)
{}
CoUninitialize();
}
void CLinKGameExDlg::OnDblclkRoomlist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos = m_RoomList.GetFirstSelectedItemPosition();
int nIndex = m_RoomList.GetNextSelectedItem(pos); // 得到项目索引
if( -1 != nIndex)
{
this->m_AreaList.ShowWindow(0);
this->m_RoomList.ShowWindow(0);
ChkShow(2);
}
*pResult = 0;
}
void CLinKGameExDlg::OnBtntest()
{
// TODO: Add your control notification handler code here
/*CDlgSetGame m_DlgSetGame;
m_DlgSetGame.Create( IDD_DLGSETGAME);
if(m_DlgSetGame.DoModal())
{}*/
testReg(0);
//m_DlgSetGame.ShowWindow(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -