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

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

?? windowfacesdialog.cpp

?? 骨骼動(dòng)畫....把魔獸模型解出的代碼..
?? CPP
字號(hào):
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "WindowFacesDialog.h"
#include "MainWindow.h"


//+-----------------------------------------------------------------------------
//| Global objects
//+-----------------------------------------------------------------------------
WINDOW_FACES_DIALOG FacesDialog;


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


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


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


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

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


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

			AddWindow(Window);
			CenterWindow(Window);

			ListBox = GetDlgItem(Window, DialogFacesList);

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

					Face = (*StaticData)[i];

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

			return TRUE;
		}

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

			ListBox = GetDlgItem(Window, DialogFacesList);

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

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

			MenuId = FaceMenu2;
			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 = FaceMenu;
					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 DialogFacesList:
				{
					switch(HIWORD(W))
					{
						case LBN_DBLCLK:
						{
							if(!Edit(Window))
							{
								Error.DisplayMessage(Window);
								Error.ClearMessage();
								return TRUE;
							}

							return TRUE;
						}
					}

					return TRUE;
				}

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

					return TRUE;
				}

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

					return TRUE;
				}

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

					return TRUE;
				}

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

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

			return FALSE;
		}

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

	return FALSE;
}



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


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


//+-----------------------------------------------------------------------------
//| Edits an existing face
//+-----------------------------------------------------------------------------
BOOL WINDOW_FACES_DIALOG::Edit(HWND Window)
{
	INT Index;
	HWND ListBox;
	MODEL_GEOSET_FACE* Face;

	ListBox = GetDlgItem(Window, DialogFacesList);

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

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

	if(!FaceDialog.Display(Window, StaticGeoset, Face)) return TRUE;

	MainWindow.MakeModelUnsaved();

	return TRUE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲私人黄色宅男| 视频一区在线播放| 亚洲超碰精品一区二区| 黑人精品欧美一区二区蜜桃| 色哟哟日韩精品| 久久伊99综合婷婷久久伊| 亚洲国产aⅴ天堂久久| 国产精品99久久久久久久女警| 欧美在线观看视频在线| 国产午夜精品在线观看| 免费观看久久久4p| 欧美在线视频全部完| 国产精品视频第一区| 久久精品国产一区二区三| 欧美日韩黄色一区二区| 亚洲蜜臀av乱码久久精品| 国产精品99精品久久免费| 日韩午夜精品电影| 天堂蜜桃一区二区三区| 91久久一区二区| 最新久久zyz资源站| 国产另类ts人妖一区二区| 亚洲精品一区二区三区影院 | 免费的成人av| 欧美专区日韩专区| 夜夜操天天操亚洲| 在线视频国内自拍亚洲视频| 亚洲人精品一区| 色婷婷av一区二区| 亚洲精品日韩综合观看成人91| 成人精品电影在线观看| 国产精品三级在线观看| 国产91精品免费| 国产精品人人做人人爽人人添| 国产福利91精品| 国产精品人成在线观看免费| 粉嫩av一区二区三区| 国产精品丝袜久久久久久app| 国产精品一卡二卡| 中文字幕成人在线观看| av电影一区二区| 亚洲一区视频在线观看视频| 欧美视频第二页| 奇米777欧美一区二区| 欧美一区二区三区四区高清| 精品一区二区三区日韩| 久久久亚洲精华液精华液精华液| 国产成人日日夜夜| 日韩伦理电影网| 欧美撒尿777hd撒尿| 免费在线观看日韩欧美| 久久久不卡网国产精品一区| 国产白丝网站精品污在线入口| www久久精品| 中文字幕日韩一区二区| 91香蕉视频mp4| 亚洲一二三级电影| 337p亚洲精品色噜噜| 黄色日韩网站视频| 久久久久国产精品厨房| 国产夫妻精品视频| 亚洲天天做日日做天天谢日日欢 | 高清不卡一区二区在线| 国产一区在线观看视频| 久热成人在线视频| 国产一区中文字幕| 从欧美一区二区三区| 欧美性大战久久久| 制服丝袜中文字幕一区| 日韩欧美一区在线观看| 2023国产精品自拍| 亚洲精品国产高清久久伦理二区| 午夜精品久久久久久久99水蜜桃| 91猫先生在线| 日韩欧美精品三级| 国产在线观看免费一区| 国产精品久久久久精k8| 欧美网站一区二区| 国产精品一区二区你懂的| 国产精品午夜春色av| 欧美久久高跟鞋激| 日韩av电影免费观看高清完整版在线观看 | 国产女人水真多18毛片18精品视频 | 久久成人18免费观看| 国产日韩欧美制服另类| 一本久久a久久精品亚洲| 国内成人精品2018免费看| 国产精品久久久久久久第一福利| 欧美精品在线视频| 懂色av一区二区三区蜜臀| 亚洲午夜激情网站| 中文字幕av一区二区三区免费看| 在线一区二区三区| 成人高清视频免费观看| 亚洲视频在线一区二区| 国产亚洲成aⅴ人片在线观看| 欧美三级三级三级爽爽爽| 国产成人在线网站| 久久www免费人成看片高清| ...xxx性欧美| 亚洲欧洲日韩在线| 日韩欧美三级在线| 日韩欧美国产系列| 亚洲国产裸拍裸体视频在线观看乱了| 中文字幕二三区不卡| 精品人在线二区三区| 欧美亚洲一区二区三区四区| 91天堂素人约啪| 国产一区二区久久| 国产精品一区二区你懂的| 奇米色一区二区三区四区| 一区二区三区不卡在线观看| 国产精品天天看| 国产精品美女一区二区三区| 日韩三级伦理片妻子的秘密按摩| 精品国产1区二区| 久久99热这里只有精品| 国产日韩影视精品| 欧美四级电影网| 精品一区二区国语对白| 国产精品乱人伦一区二区| 欧美性大战xxxxx久久久| 精品一二三四在线| 亚洲免费av观看| 欧美成人猛片aaaaaaa| 成人性色生活片免费看爆迷你毛片| 精品在线视频一区| 欧美群妇大交群的观看方式| 精品一区二区在线观看| 久久精品国产999大香线蕉| 五月婷婷激情综合网| 麻豆中文一区二区| 老鸭窝一区二区久久精品| 激情综合五月天| 天天综合色天天综合| 国产日产精品1区| 欧美挠脚心视频网站| 日本亚洲一区二区| 99久久婷婷国产综合精品 | 国产福利视频一区二区三区| 国产麻豆一精品一av一免费| 一区二区三区美女视频| 日韩欧美中文字幕精品| 国产精品一级黄| 色悠悠亚洲一区二区| 成人免费av网站| www.亚洲色图.com| 在线观看国产精品网站| 成人99免费视频| 欧美综合亚洲图片综合区| 欧美一区二区三区影视| 久久先锋影音av| 有坂深雪av一区二区精品| 国产精品毛片大码女人| 午夜精品久久久久久久久久 | 91精品国产综合久久久久久| 久久久欧美精品sm网站| 国产精品欧美久久久久一区二区 | 国产乱子伦视频一区二区三区| 成人久久视频在线观看| 欧美专区日韩专区| 国产精品久久久久影院亚瑟| 亚洲在线免费播放| 国产精品每日更新在线播放网址| 中文字幕在线一区二区三区| 日韩va欧美va亚洲va久久| 欧美福利视频一区| 精品国产麻豆免费人成网站| 国产精品久久久久久久第一福利| 日本一道高清亚洲日美韩| 国产成人精品三级麻豆| 97精品久久久午夜一区二区三区| 欧美亚州韩日在线看免费版国语版| 久久久久久99精品| 美女任你摸久久| 色综合久久中文字幕综合网| 久久综合色天天久久综合图片| 国产精品中文字幕欧美| 岛国精品一区二区| 日韩欧美一区在线| 亚洲精品水蜜桃| www.在线欧美| 中日韩av电影| 免费黄网站欧美| 欧美在线播放高清精品| 欧美一卡二卡三卡四卡| 国产免费观看久久| 韩国三级在线一区| 欧美日韩高清一区二区三区| 亚洲免费观看高清完整版在线观看熊| 久久国产精品99久久久久久老狼| 在线成人小视频| 国产亚洲精久久久久久| 国产乱码字幕精品高清av| 成人黄色777网| 国产欧美日韩在线观看| 在线观看亚洲精品| 久久精品国内一区二区三区| 日本精品裸体写真集在线观看 | 91精品在线麻豆|