亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? servertreeview.cpp

?? 網(wǎng)絡(luò)游戲建模書(shū)的源代碼
?? CPP
字號(hào):
// servertreeview.cpp : implementation file
//

#include "stdafx.h"
#include "..\GameHigh.h"
#include "..\include\servertreeview.h"
#include "MainFrm.h"
#include "Macros.h"

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

extern	CGameHighApp	theApp;
/////////////////////////////////////////////////////////////////////////////
// CServerTreeView

IMPLEMENT_DYNCREATE(CServerTreeView, CView)

CServerTreeView::CServerTreeView()
{
	hRootItem		=NULL;
	hGambleItem	=NULL;
	hForumItem		=NULL;
	hChessItem		=NULL;
	hCardItem		=NULL;
}

CServerTreeView::~CServerTreeView()
{
	m_ServerImgList.DeleteImageList();
}


BEGIN_MESSAGE_MAP(CServerTreeView, CView)
	//{{AFX_MSG_MAP(CServerTreeView)
	ON_WM_CREATE()
	ON_WM_SIZE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CServerTreeView drawing

void CServerTreeView::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CServerTreeView diagnostics

#ifdef _DEBUG
void CServerTreeView::AssertValid() const
{
	CView::AssertValid();
}

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

/////////////////////////////////////////////////////////////////////////////
// CServerTreeView message handlers

int CServerTreeView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	try
	{
		RECT	rect;
		memset(&rect, 0, sizeof(RECT));
		m_ServerTree.Create(WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT |
					TVS_HASBUTTONS | TVS_SHOWSELALWAYS , rect, this,
					SERVER_TREEID);
		m_ServerTree.SetItemHeight(20);	

		COLORREF	clrBk	=RGB(150, 175, 230);
		m_ServerTree.SetBkColor(clrBk);
	}
	catch(...)
	{
		::MessageBox(this->GetSafeHwnd(), "無(wú)法創(chuàng)建游戲列表樹(shù)!",
			"錯(cuò)誤!", MB_OK | MB_ICONERROR);
	}	

	InitServerTree();
	return 0;
}

BOOL CServerTreeView::InitServerTree()
{
	CTreeCtrl*	pTreeCtrl	=&m_ServerTree;
	SAFE_CHECKFALSEWND(pTreeCtrl)
	{
		return FALSE;
	}

	if(NULL == m_ServerImgList.GetSafeHandle())
	{
		m_ServerImgList.Create(16, 16, ILC_COLOR24 | ILC_MASK, 0, 256);
		
		CBitmap	m_Bmp;
		m_Bmp.LoadBitmap(IDB_HALLTREE);
		if(NULL != m_Bmp.GetSafeHandle())
		{
			m_ServerImgList.Add(&m_Bmp, RGB(3, 126, 129));
			m_Bmp.DeleteObject();
		}
	}

	if(NULL != m_ServerImgList.GetSafeHandle())
	{
		m_ServerTree.SetImageList(&m_ServerImgList, TVSIL_NORMAL);
	}

	
	hRootItem		=m_ServerTree.InsertItem("Game High在線游戲系列", 0, 0, TVI_ROOT, TVI_LAST);	
	SAFE_CHECKPOINTER(hRootItem)
	{
		hChessItem		=m_ServerTree.InsertItem("棋類游戲", 5, 5, hRootItem, TVI_LAST);
		
		SAFE_CHECKPOINTER(hChessItem)
		{
			m_ServerTree.InsertItem("奧賽羅", 6, 6, hChessItem, TVI_LAST);
			
			HTREEITEM	hArmy=m_ServerTree.InsertItem("軍棋",   8, 8, hChessItem, TVI_LAST);
			
			//非測(cè)試版本應(yīng)該在這里提取房間列表
			LPGAMEHIGH_ROOM		lpArray		=NULL;
			int					nRoomCount	=0;
			CMainData*	pMainData	=NULL;
			pMainData	=theApp.GetMainData();
			SAFE_CHECKPOINTER(pMainData)
			{
				pMainData->Async_GameHigh_LoadRoomsFromServer(1, lpArray, nRoomCount);
				if(hArmy && 
					NULL != lpArray &&
					0    <nRoomCount)
				{
					for(int i=0; i<nRoomCount; i++)
					{
						HTREEITEM	hSubItem	=NULL;
						hSubItem	=m_ServerTree.InsertItem(lpArray[i].RoomName, 8, 8, hArmy, TVI_LAST);
						m_ServerTree.SetItemData(hSubItem, lpArray[i].uRoomID);
					}
					delete[]	lpArray;
				}
			}
			
			m_ServerTree.InsertItem("斗獸棋", 6, 6, hChessItem, TVI_LAST);
			m_ServerTree.InsertItem("五子棋", 6, 6, hChessItem, TVI_LAST);
			m_ServerTree.InsertItem("圍棋",   6, 6, hChessItem, TVI_LAST);
			m_ServerTree.Expand(hChessItem, TVE_EXPAND);
		}//end check pointer "hChessItem"
		
		hCardItem		=m_ServerTree.InsertItem("牌類游戲", 5, 5, hRootItem, TVI_LAST);
		SAFE_CHECKPOINTER(hCardItem)
		{
			m_ServerTree.InsertItem("鋤大D", 6, 6, hCardItem, TVI_LAST);
			m_ServerTree.InsertItem("斗地主", 6, 6, hCardItem, TVI_LAST);
			m_ServerTree.Expand(hCardItem, TVE_EXPAND);
		}//end check pointer "hCardItem"
		
		SAFE_CHECKPOINTER(hGambleItem)
		{
			hGambleItem		=m_ServerTree.InsertItem("博彩類", 5, 5, hRootItem, TVI_LAST);
			m_ServerTree.Expand(hGambleItem, TVE_EXPAND);
		}//end check pointer "hGambleItem"
		
		SAFE_CHECKPOINTER(hForumItem)
		{
			hForumItem		=m_ServerTree.InsertItem("游戲論壇", 2, 2, hRootItem, TVI_LAST);
			m_ServerTree.Expand(hForumItem, TVE_EXPAND);
		}//end check pointer "hForumItem"
		
		m_ServerTree.Expand(hRootItem, TVE_EXPAND);
	}	//end check pointer "hRootItem"
	return TRUE;
}

void CServerTreeView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
	
	RECT	rect;
	memset(&rect, 0, sizeof(RECT));
	this->GetClientRect(&rect);
	CTreeCtrl*	pTreeCtrl	=&m_ServerTree;
	SAFE_CHECKWND(pTreeCtrl)
	{
		m_ServerTree.MoveWindow(&rect, TRUE);
	}
	
}

LRESULT CServerTreeView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	switch(message)
	{
	case WM_COMMAND:
		{
			;
		}
		break;
	case WM_NOTIFY:
		{
			CTreeCtrl*	pTreeCtrl	=&m_ServerTree;
			SAFE_CHECKFALSEWND(pTreeCtrl)
			{
				break;
			}
			LPNMHDR	lpdr	=(LPNMHDR)lParam;
			if(NULL != lpdr && lpdr->hwndFrom == m_ServerTree.GetSafeHwnd())
			{
				switch(lpdr->code)
				{
				case TVN_SELCHANGED:
					{	
						OnTreeSelChanged(lpdr);
					}
					break;
				case NM_DBLCLK:
					{
						OnTreeDblClk(lpdr);
					}
					break;
				case NM_RCLICK:
					{
						OnTreeRClick(lpdr);
					}
					break;
				default:
					break;
				}//end switch(lpdr->code)
			}//endif 
		}//end case WM_NOTIFY
		break;
	default:
		break;
	}//end switch message
	return CView::WindowProc(message, wParam, lParam);
}

void CServerTreeView::OnTreeSelChanged(LPNMHDR lpdr)
{
	ASSERT(lpdr);
	if(NULL == lpdr)
		return ;
}

void CServerTreeView::OnTreeRClick(LPNMHDR lpdr)
{
	ASSERT(lpdr);
	if(NULL == lpdr)
		return ;
}

void CServerTreeView::OnTreeDblClk(LPNMHDR lpdr)
{	
	ASSERT(lpdr);
	if(NULL == lpdr)
		return ;
	
	CMainData*	pMainData	=NULL;
	pMainData	=theApp.GetMainData();
	if(NULL == pMainData)
		return;

	CTreeCtrl*	pTreeCtrl	=&m_ServerTree;
	SAFE_CHECKWND(pTreeCtrl)
	{
		HTREEITEM	hItem	=pTreeCtrl->GetSelectedItem();
		SAFE_CHECKPOINTER(hItem)
		{
			DWORD	dwRoomData	=pTreeCtrl->GetItemData(hItem);
			if(dwRoomData > 0)
			{
				CMainFrame*	pFrame	=(CMainFrame*)::AfxGetMainWnd();
				SAFE_CHECKWND(pFrame)
				{
					pFrame->ShowTableFrame(TRUE, dwRoomData);
				}
			}
		}
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色哟哟国产精品免费观看| 欧美一区二区福利视频| 蜜桃视频在线观看一区| 亚洲欧洲国产专区| 欧美videos中文字幕| 欧美视频精品在线| av资源站一区| 国产精品123| 看电视剧不卡顿的网站| 亚洲欧美日韩在线| 国产精品美女久久久久aⅴ国产馆| 欧美人妇做爰xxxⅹ性高电影| zzijzzij亚洲日本少妇熟睡| 韩国av一区二区三区四区| 视频一区视频二区中文字幕| 亚洲视频在线观看一区| 中文字幕乱码日本亚洲一区二区| 欧美一区二区三区人| 欧美三级韩国三级日本三斤| 91麻豆福利精品推荐| 成人精品视频一区二区三区| 久久97超碰色| 久久国产综合精品| 首页国产欧美久久| 亚洲高清不卡在线观看| 亚洲激情中文1区| 自拍偷拍亚洲综合| 亚洲视频精选在线| **欧美大码日韩| 亚洲欧美在线观看| 亚洲欧洲日产国产综合网| 中文字幕在线播放不卡一区| 国产日韩欧美制服另类| 国产亚洲一区二区三区四区| 久久先锋影音av鲁色资源 | 91精品国产色综合久久| 欧美日韩久久不卡| 欧美日韩mp4| 91麻豆精品国产自产在线观看一区| 欧美日韩国产精品成人| 欧美日韩大陆一区二区| 欧美日韩综合在线免费观看| 欧美亚洲日本国产| 欧美老肥妇做.爰bbww| 欧美猛男gaygay网站| 制服.丝袜.亚洲.另类.中文 | 欧美亚洲国产bt| 欧美性xxxxxxxx| 制服丝袜激情欧洲亚洲| 日韩欧美不卡在线观看视频| 26uuu精品一区二区| 国产日韩高清在线| 亚洲欧美区自拍先锋| 一二三四社区欧美黄| 日韩精品电影在线观看| 久久国产夜色精品鲁鲁99| 国产福利一区二区| 91视频在线观看免费| 在线影视一区二区三区| 3d成人动漫网站| 久久午夜色播影院免费高清| 日本一区二区不卡视频| 一区二区三区欧美日韩| 男女性色大片免费观看一区二区| 国产综合色产在线精品| 99精品偷自拍| 在线电影一区二区三区| 国产午夜亚洲精品午夜鲁丝片| 国产精品美女久久久久av爽李琼| 亚洲一区二区在线免费看| 麻豆91免费观看| 成人av集中营| 欧美日韩二区三区| 国产日韩精品一区二区三区 | 精品国产一区二区三区四区四| 国产亚洲欧美日韩俺去了| 亚洲精品视频在线观看免费| 免费一区二区视频| 91免费视频大全| 欧美xxxxx牲另类人与| 亚洲欧美日韩人成在线播放| 麻豆成人免费电影| 91免费视频观看| 久久免费视频色| 亚洲aⅴ怡春院| jlzzjlzz亚洲女人18| 欧美一区二区三区四区久久| 亚洲欧洲美洲综合色网| 激情国产一区二区| 欧美专区亚洲专区| 国产精品入口麻豆九色| 日本在线不卡视频一二三区| gogo大胆日本视频一区| 欧美v亚洲v综合ⅴ国产v| 一区二区三区成人在线视频| 国产成人啪午夜精品网站男同| 欧美日韩精品二区第二页| 中文成人综合网| 久久国产三级精品| 欧美精品 日韩| 伊人性伊人情综合网| 成人性视频网站| 久久人人爽人人爽| 免费观看91视频大全| 欧美日韩一级二级| 自拍视频在线观看一区二区| 国产精品影视在线观看| 日韩一级二级三级精品视频| 亚洲国产日产av| 色呦呦网站一区| 亚洲欧美在线观看| 国产91精品欧美| 久久在线观看免费| 青青草97国产精品免费观看| 欧美日韩一区 二区 三区 久久精品| 国产精品高潮呻吟久久| 国产激情精品久久久第一区二区| 日韩你懂的电影在线观看| 婷婷综合另类小说色区| 91精品福利视频| 亚洲精品中文在线| av欧美精品.com| 国产精品色一区二区三区| 国产激情一区二区三区四区| 久久丝袜美腿综合| 国产精品一区二区三区四区| 精品久久久久香蕉网| 日本aⅴ亚洲精品中文乱码| 777欧美精品| 日本不卡中文字幕| 在线成人免费视频| 日韩av在线播放中文字幕| 91精品国产一区二区三区蜜臀| 亚洲成人午夜电影| 7878成人国产在线观看| 日本成人在线不卡视频| 欧美成人精品3d动漫h| 久久99国产乱子伦精品免费| 精品国产一区二区三区不卡| 国产伦理精品不卡| 亚洲国产精品精华液2区45| gogo大胆日本视频一区| 亚洲美女电影在线| 欧美精品视频www在线观看| 日韩综合一区二区| 精品久久久久久久久久久院品网 | 亚瑟在线精品视频| 欧美一二三区精品| 激情亚洲综合在线| 日本一区二区成人在线| 色综合天天综合在线视频| 一区二区三区中文字幕电影| 欧美日韩高清影院| 精品在线观看视频| 欧美激情综合五月色丁香小说| 91无套直看片红桃| 亚洲成人精品在线观看| 欧美www视频| 北条麻妃一区二区三区| 亚洲自拍偷拍网站| 精品少妇一区二区| 99久久国产免费看| 亚洲成人一区二区在线观看| 精品噜噜噜噜久久久久久久久试看| 国产乱淫av一区二区三区| 国产精品高潮呻吟久久| 欧美精品乱码久久久久久按摩| 激情都市一区二区| 亚洲免费av观看| 精品美女在线播放| 日本高清无吗v一区| 久久国产麻豆精品| 亚洲啪啪综合av一区二区三区| 欧美高清精品3d| 国产精品主播直播| 亚洲成av人综合在线观看| 久久夜色精品国产欧美乱极品| 一本色道久久综合亚洲aⅴ蜜桃| 日本人妖一区二区| 亚洲欧美在线高清| 欧美videos中文字幕| 91官网在线免费观看| 国产麻豆精品视频| 午夜伦欧美伦电影理论片| 国产农村妇女精品| 欧美一区二区黄| 色综合中文字幕国产| 日本中文字幕一区二区有限公司| 国产精品久久午夜夜伦鲁鲁| 欧美一区日韩一区| 欧洲av在线精品| 成人中文字幕电影| 久久国产尿小便嘘嘘尿| 亚洲一区二区欧美| 国产精品国模大尺度视频| 欧美一级高清片| 欧美日韩国产电影| 色香色香欲天天天影视综合网| 国产精品996| 久久99精品国产.久久久久久|