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

📄 linkgameexdlg.cpp

📁 一个类似与浩方的战网平台源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		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 + -