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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? windowverticesdialog.cpp

?? 骨骼動畫....把魔獸模型解出的代碼..
?? CPP
字號:
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "WindowVerticesDialog.h"
#include "MainWindow.h"


//+-----------------------------------------------------------------------------
//| Global objects
//+-----------------------------------------------------------------------------
WINDOW_VERTICES_DIALOG VerticesDialog;


//+-----------------------------------------------------------------------------
//| Static member variables
//+-----------------------------------------------------------------------------
SIMPLE_CONTAINER<MODEL_GEOSET_VERTEX*>* WINDOW_VERTICES_DIALOG::StaticData;
MODEL_GEOSET* WINDOW_VERTICES_DIALOG::StaticGeoset;


//+-----------------------------------------------------------------------------
//| Constructor
//+-----------------------------------------------------------------------------
WINDOW_VERTICES_DIALOG::WINDOW_VERTICES_DIALOG()
{
	//Empty
}


//+-----------------------------------------------------------------------------
//| Destructor
//+-----------------------------------------------------------------------------
WINDOW_VERTICES_DIALOG::~WINDOW_VERTICES_DIALOG()
{
	//Empty
}


//+-----------------------------------------------------------------------------
//| Displays the dialog
//+-----------------------------------------------------------------------------
BOOL WINDOW_VERTICES_DIALOG::Display(HWND ParentWindow, MODEL_GEOSET* Geoset, SIMPLE_CONTAINER<MODEL_GEOSET_VERTEX*>* Data) CONST
{
	StaticData = Data;
	StaticGeoset = Geoset;
	if(DialogBoxParam(GetModuleHandle(NULL), MAKEINTRESOURCE(DialogVertices), ParentWindow, DialogMessageHandler, 0))
	{
		StaticData = NULL;
		StaticGeoset = NULL;
		return TRUE;
	}

	StaticData = NULL;
	StaticGeoset = NULL;
	return FALSE;
}


//+-----------------------------------------------------------------------------
//| Handles the dialog messages
//+-----------------------------------------------------------------------------
BOOL CALLBACK WINDOW_VERTICES_DIALOG::DialogMessageHandler(HWND Window, UINT Message, WPARAM W, LPARAM L)
{
	switch(Message)
	{
		case WM_INITDIALOG:
		{
			INT i;
			INT Index;
			HWND ListBox;
			MODEL_GEOSET_VERTEX* Vertex;

			AddWindow(Window);
			CenterWindow(Window);

			ListBox = GetDlgItem(Window, DialogVerticesList);

			for(i = 0; i < StaticData->GetTotalSize(); i++)
			{
				if(StaticData->ValidIndex(i))
				{
					std::stringstream Stream;

					Vertex = (*StaticData)[i];

					Stream << "Vertex " << Vertex;
					Index = static_cast<INT>(::SendMessage(ListBox, LB_INSERTSTRING, -1, reinterpret_cast<LPARAM>(Stream.str().c_str())));
					::SendMessage(ListBox, LB_SETITEMDATA, Index, reinterpret_cast<LPARAM>(Vertex));
				}
			}

			return TRUE;
		}

		case WM_CONTEXTMENU:
		{
			INT Index;
			INT MenuId;
			INT NrOfItems;
			HWND ListBox;
			RECT TempRect;
			RECT ListRect;
			POINT MousePosition;
			POINT LocalMousePosition;

			ListBox = GetDlgItem(Window, DialogVerticesList);

			GetWindowRect(ListBox, &ListRect);
			GetCursorPos(&MousePosition);
			LocalMousePosition = MousePosition;
			ScreenToClient(ListBox, &LocalMousePosition);

			if(!Common.PointInsideRect(MousePosition, ListRect)) return TRUE;

			MenuId = VertexMenu2;
			NrOfItems = static_cast<INT>(::SendMessage(ListBox, LB_GETCOUNT, 0, 0));

			Index = 0;
			while(Index < NrOfItems)
			{
				::SendMessage(ListBox, LB_GETITEMRECT, Index, reinterpret_cast<LPARAM>(&TempRect));
				if(Common.PointInsideRect(LocalMousePosition, TempRect))
				{
					::SendMessage(ListBox, LB_SETCURSEL, Index, 0);
					MenuId = VertexMenu;
					break;
				}

				Index++;
			}

			TrackPopupMenuEx(GetSubMenu(LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(MenuId)), 0), TPM_LEFTALIGN | TPM_RIGHTBUTTON, MousePosition.x, MousePosition.y, Window, NULL);

			return TRUE;
		}

		case WM_COMMAND:
		{
			switch(LOWORD(W))
			{
				case DialogVerticesList:
				{
					switch(HIWORD(W))
					{
						case LBN_DBLCLK:
						{
							if(!Edit(Window))
							{
								Error.DisplayMessage(Window);
								Error.ClearMessage();
								return TRUE;
							}

							return TRUE;
						}
					}

					return TRUE;
				}

				case VertexFileCreate:
				case VertexFileCreate2:
				{
					if(!CreateNew(Window))
					{
						Error.DisplayMessage(Window);
						Error.ClearMessage();
						return TRUE;
					}

					return TRUE;
				}

				case VertexFileRemove:
				case VertexFileRemove2:
				{
					if(!Remove(Window))
					{
						Error.DisplayMessage(Window);
						Error.ClearMessage();
						return TRUE;
					}

					return TRUE;
				}

				case VertexFileEdit:
				case VertexFileEdit2:
				{
					if(!Edit(Window))
					{
						Error.DisplayMessage(Window);
						Error.ClearMessage();
						return TRUE;
					}

					return TRUE;
				}

				case DialogVerticesButtonOk:
				{
					RemoveWindow(Window);
					EndDialog(Window, 1);
					return TRUE;
				}

				case DialogVerticesButtonCancel:
				{
					RemoveWindow(Window);
					EndDialog(Window, 0);
					return TRUE;
				}
			}

			return FALSE;
		}

		case WM_CLOSE:
		{
			::SendMessage(Window, WM_COMMAND, DialogVerticesButtonOk, 0);
			return TRUE;
		}
	}

	return FALSE;
}


//+-----------------------------------------------------------------------------
//| Creates a new vertex
//+-----------------------------------------------------------------------------
BOOL WINDOW_VERTICES_DIALOG::CreateNew(HWND Window)
{
	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Removes an existing vertex
//+-----------------------------------------------------------------------------
BOOL WINDOW_VERTICES_DIALOG::Remove(HWND Window)
{
	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Edits an existing vertex
//+-----------------------------------------------------------------------------
BOOL WINDOW_VERTICES_DIALOG::Edit(HWND Window)
{
	INT Index;
	HWND ListBox;
	MODEL_GEOSET_VERTEX* Vertex;

	ListBox = GetDlgItem(Window, DialogVerticesList);

	Index = static_cast<INT>(::SendMessage(ListBox, LB_GETCURSEL, 0, 0));
	if(Index == LB_ERR) return TRUE;

	Vertex = reinterpret_cast<MODEL_GEOSET_VERTEX*>(::SendMessage(ListBox, LB_GETITEMDATA, Index, 0));
	if(Vertex == NULL) return TRUE;

	if(!VertexDialog.Display(Window, StaticGeoset, Vertex)) return TRUE;

	MainWindow.MakeModelUnsaved();

	return TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨porny丨在线| 欧美精品一区在线观看| 精品久久人人做人人爽| 最近日韩中文字幕| 麻豆精品一二三| 在线观看国产一区二区| 久久夜色精品国产欧美乱极品| 一区二区三区色| 成人一级片在线观看| 日韩视频免费观看高清完整版在线观看 | 精品999在线播放| 亚洲国产视频a| 99精品偷自拍| 欧美国产精品v| 国产呦萝稀缺另类资源| 欧美理论电影在线| 一区二区三区在线观看视频| 成人免费三级在线| 国产亚洲欧美在线| 精品亚洲aⅴ乱码一区二区三区| 7777精品久久久大香线蕉| 亚洲综合激情小说| 一本色道久久综合亚洲aⅴ蜜桃| 久久免费美女视频| 久久精品理论片| 欧美一区二区三区思思人| 亚洲成人av电影在线| 色欧美乱欧美15图片| 亚洲欧洲日韩女同| 成人高清在线视频| 国产精品高潮呻吟| www.成人网.com| 日韩一区在线播放| 色婷婷久久99综合精品jk白丝 | 视频一区二区中文字幕| 99免费精品在线观看| 中文字幕精品一区| 成人免费视频免费观看| 中文字幕一区二区在线观看| 成人av在线看| 亚洲欧美一区二区三区极速播放| 成人av电影在线| 中文字幕日本乱码精品影院| 成人av电影免费在线播放| 自拍av一区二区三区| 91视频国产观看| 亚洲午夜免费电影| 777午夜精品免费视频| 麻豆精品视频在线观看免费 | 一区二区三区视频在线看| 色狠狠色噜噜噜综合网| 亚洲成人在线免费| 欧美va在线播放| 丁香桃色午夜亚洲一区二区三区| 国产精品美女久久久久久| 99精品欧美一区二区三区综合在线| 亚洲欧美日韩电影| 欧美理论在线播放| 黄色日韩三级电影| 亚洲欧美视频在线观看视频| 欧美精品日韩一本| 久久se这里有精品| 综合自拍亚洲综合图不卡区| 欧美日韩1234| 精品在线视频一区| 亚洲精品视频在线看| 51午夜精品国产| 成人av在线资源网站| 亚洲成a人v欧美综合天堂 | 亚洲午夜电影在线| 337p日本欧洲亚洲大胆色噜噜| av电影天堂一区二区在线观看| 偷窥少妇高潮呻吟av久久免费| 久久综合久久综合亚洲| 色综合视频一区二区三区高清| 日韩电影在线免费看| 樱花影视一区二区| 宅男在线国产精品| 91麻豆文化传媒在线观看| 蜜桃一区二区三区在线| 亚洲色图一区二区| 国产亚洲欧洲一区高清在线观看| 欧美日韩成人综合在线一区二区| 国产成人精品网址| 午夜私人影院久久久久| 国产精品久久久久一区二区三区共| 欧美一级电影网站| 欧美视频一区二区三区在线观看| 成人性生交大片免费看中文| 久久精品99国产精品| 亚洲va欧美va天堂v国产综合| 欧美激情一区二区三区四区 | 在线视频综合导航| 成人美女视频在线看| 国产曰批免费观看久久久| 亚洲国产欧美在线人成| 国产精品久久精品日日| 久久综合九色综合欧美98| 欧美美女视频在线观看| 色婷婷综合久久久| 成人a区在线观看| 国产盗摄一区二区三区| 精品在线你懂的| 美女视频黄免费的久久| 日韩激情在线观看| 天天综合网 天天综合色| 亚洲精品高清视频在线观看| 综合欧美亚洲日本| 亚洲少妇30p| 亚洲人亚洲人成电影网站色| 欧美国产一区二区在线观看| 精品日韩在线一区| 欧美一区二区三区系列电影| 欧美精品vⅰdeose4hd| 欧美天天综合网| 欧美色网站导航| 欧美在线视频日韩| 欧美性极品少妇| 欧美日韩一级二级| 欧美一区二区三区日韩| 欧美一区二区视频免费观看| 日韩一区二区精品| 久久免费偷拍视频| 国产日产欧美一区二区三区| 日本一区二区三区在线不卡| 欧美激情综合网| 亚洲免费色视频| 亚洲线精品一区二区三区| 天天操天天干天天综合网| 青椒成人免费视频| 国产一区二区三区香蕉| 国产福利一区二区三区视频 | 国产福利视频一区二区三区| www.激情成人| 在线亚洲一区二区| 7777精品伊人久久久大香线蕉经典版下载 | 欧美成人乱码一区二区三区| 久久久综合视频| 日韩毛片在线免费观看| 亚洲成人精品一区| 狠狠色2019综合网| 成人av影院在线| 欧美乱妇15p| 国产精品成人网| 亚洲欧美一区二区三区国产精品 | 国产综合色视频| 99精品久久久久久| 欧美日韩高清影院| 欧美激情一区二区三区蜜桃视频| 亚洲国产精品一区二区www在线| 午夜久久久久久电影| 国产精选一区二区三区| 午夜精品爽啪视频| 国产剧情一区二区| 欧美亚洲综合久久| 久久久综合视频| 亚洲综合男人的天堂| 激情丁香综合五月| 欧美亚洲一区二区在线| 久久综合色8888| 性感美女久久精品| 国产成人在线色| 67194成人在线观看| 亚洲天堂2016| 国产一二三精品| 欧美精品一卡二卡| 亚洲欧美视频一区| 国产精品888| 日韩一区二区三区免费看| 亚洲天堂精品视频| 粉嫩在线一区二区三区视频| 欧美人xxxx| 亚洲激情在线播放| 国产成人精品午夜视频免费| 日韩午夜电影在线观看| 一区2区3区在线看| 99久久综合狠狠综合久久| 日韩精品一区二区三区四区| 一区二区三区中文字幕在线观看| 丁香桃色午夜亚洲一区二区三区| 欧美刺激脚交jootjob| 午夜久久久久久| 欧美三电影在线| 一区二区三区**美女毛片| 不卡的av网站| 国产日韩一级二级三级| 精品一区免费av| 日韩视频免费观看高清完整版在线观看 | 国产精品自拍在线| 日韩精品中文字幕在线一区| 五月综合激情网| 欧美高清精品3d| 日韩福利电影在线| 欧美肥大bbwbbw高潮| 午夜电影网一区| 91精品视频网| 麻豆国产精品官网| 精品国产一区a| 极品美女销魂一区二区三区免费| 精品少妇一区二区三区在线播放|