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

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

?? keydefdlg.cpp

?? miXo is a buzz machine (www.buzzmachines.com) - a plugin for the freely available jeskola buzz track
?? CPP
字號(hào):
// KeyDefDlg.cpp: implementation of the CKeyDefDlg class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "mixer.h"
#include "KeyDefDlg.h"
#include "MixerKeyTable.h"
#include "resource.h"
#include "KeyWaitWin.h"
#include <sstream>

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CKeyDefDlg::CKeyDefDlg(CMixerKeyTable *pKeyTable,const char *szMod) 
: CDlg(szMod),m_pcKeyTable(pKeyTable),m_strKey(),m_strSelect(),
	m_strEdit(),m_pcKeyWin(NULL)
{

}

CKeyDefDlg::~CKeyDefDlg()
{
	if(m_pcKeyWin) {
		delete m_pcKeyWin;
		m_pcKeyWin=NULL;
	}
}
void CKeyDefDlg::PostCreate()
{
	CDlg::PostCreate();
	InitChildren();
}
LRESULT CKeyDefDlg::DlgProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	switch(uMsg) {
	case WM_USER:
		if(m_pcKeyWin && (m_pcKeyWin==(CKeyWaitWin*)lParam)) {
			AssignKey();
			return true;
		}
		break;
	}
	return CDlg::DlgProc(hWnd,uMsg,wParam,lParam);
}
bool CKeyDefDlg::OnWMCommand(int id,HWND h,int wNotifyCode) 
{
	
	if(CBN_SELCHANGE == wNotifyCode) {
		switch(id) 
		{
		case IDC_KEYDEFLIST:
			UpdateKeys();
			return true;
			break;
		case IDC_KEYS:
			UpdateEdit();
			return true;
			break;
		}
	}
	if(BN_CLICKED == wNotifyCode) {
		switch(id) 
		{
		case IDC_ASSIGNEDIT:
			AssignEdit();
			return true;
			break;
		case IDC_NEWKEYDEF:
			NewKeyDef();
			return true;
			break;
		case IDC_RENAMEKEYDEF:
			RenameKeyDef();
			return true;
			break;
		case IDC_ASSIGNKEY:
			if(!m_pcKeyWin) {
				AssignKey();
			}
			return true;
			break;
		case IDC_NEWKEY:
			if(!m_pcKeyWin) {
				NewKey();
				return true;
			}
			break;
		case IDC_DELETEKEY:
			DeleteKey();
			return true;
			break;
		}
	}
	return CDlg::OnWMCommand(id,h,wNotifyCode);
}
void CKeyDefDlg::RenameKeyDef()
{
	CMixerKeyDef *pKeyDef;
	if((pKeyDef=m_pcKeyTable->GetKeyDef(m_strSelect)) == NULL)
		NewKeyDef();
	string strSel=GetControlText(IDC_KEYDEFLIST);
	stringstream stm;
	stm << strSel;
	while((m_pcKeyTable->GetKeyDef(stm.str())) != NULL) {
		stm << "(Renamed)";
	}
	stm << ends;
	strSel=stm.str();
	pKeyDef->SetName(strSel);
	m_strPreSelect=strSel;
	InitChildren();
}
void CKeyDefDlg::NewKeyDef()
{
	string strSel=GetControlText(IDC_KEYDEFLIST);			//GetSelection(IDC_KEYDEFLIST);
	stringstream stm;
	stm << strSel;
	while((m_pcKeyTable->GetKeyDef(stm.str())) != NULL) {
		stm << "(New)";
	}
	stm << ends;
	strSel=stm.str();
	m_pcKeyTable->AddKeyDef(CMixerKeyDef(strSel));
	m_strPreSelect=strSel;
	InitChildren();
}
void CKeyDefDlg::UpdateKeys()
{
	ClearKeys();
	ClearEdit();
	m_strSelect=GetSelection(IDC_KEYDEFLIST);
	if(m_strSelect.length() == 0) {
		return;
	}
	SendDlgItemMessage(GetWndHandle(),IDC_KEYS,CB_RESETCONTENT,0,0);
	const char *szKey=m_strKey.c_str();
	CMixerKeyDef *pKeyDef=m_pcKeyTable->GetKeyDef(m_strSelect);
	int iKeySel=-1;
	if(pKeyDef) {
		for(int i=0;i<pKeyDef->GetSize();i++) {
			CKey *pKey=pKeyDef->GetKey(i);
			if(pKey) {
				const string str=pKey->GetDispKey();
				const char *sz=str.c_str();
				if(strcmp(sz,szKey) == 0)
					iKeySel=i;
				SendDlgItemMessage(GetWndHandle(),IDC_KEYS,CB_ADDSTRING,0,long(str.c_str()));
			}
		}
		if(pKeyDef->GetSize() > 0) {
			if(iKeySel == -1)
				iKeySel=0;
			SendDlgItemMessage(GetWndHandle(),IDC_KEYS,CB_SETCURSEL,iKeySel,0);
			UpdateEdit();
		}
	}
	//		ClearKeys();
}
void CKeyDefDlg::ClearKeys()
{
	SendDlgItemMessage(GetWndHandle(),IDC_KEYS,CB_RESETCONTENT,0,0);
}
void CKeyDefDlg::ClearEdit()
{
	SendDlgItemMessage(GetWndHandle(),IDC_EDITCMD,WM_SETTEXT,0,NULL);
}

void CKeyDefDlg::InitChildren()
{
	assert(m_pcKeyTable);
	SendDlgItemMessage(GetWndHandle(),IDC_KEYDEFLIST,CB_RESETCONTENT,0,0);
	int iSel=-1;
	const char *szPre=m_strPreSelect.c_str();
	for(int i=0;i<m_pcKeyTable->GetSize();i++) {
		const string str=m_pcKeyTable->GetNameOf(i);
		int iIdx=SendDlgItemMessage(GetWndHandle(),IDC_KEYDEFLIST,CB_ADDSTRING,0,long(str.c_str()));
		const char *sz=str.c_str();
		if(strcmp(szPre,sz) == 0)
			iSel=iIdx;
	}
	if(iSel >= 0)
		SendDlgItemMessage(GetWndHandle(),IDC_KEYDEFLIST,CB_SETCURSEL,iSel,0);
	UpdateKeys();
}
string CKeyDefDlg::GetSelection(int id)
{
	int iSel=SendDlgItemMessage(GetWndHandle(),id,CB_GETCURSEL,0,0);
	if(iSel != CB_ERR) {
		int iLen=SendDlgItemMessage(GetWndHandle(),id,CB_GETLBTEXTLEN,iSel,0);
		if(iLen == CB_ERR)
			return string("");
		char *pszBuf=new char[iLen+1];
		SendDlgItemMessage(GetWndHandle(),id,CB_GETLBTEXT,iSel,long(pszBuf));
		string strSel=string(pszBuf);
		delete [] pszBuf;
		return strSel;
	}
	return string("");

}
CKey *CKeyDefDlg::GetCurrentKey()
{
	m_strSelect=GetSelection(IDC_KEYDEFLIST);
	m_strKey=GetSelection(IDC_KEYS);
	const char *szKey=m_strKey.c_str();
	CMixerKeyDef *pKeyDef=m_pcKeyTable->GetKeyDef(m_strSelect);
	if(pKeyDef) {
		CKey *pKey=NULL;
		for(int i=0;i<pKeyDef->GetSize();i++) {
			pKey=pKeyDef->GetKey(i);
			if(pKey) {
				const string str=pKey->GetDispKey();
				const char *sz=str.c_str();
				if(strcmp(sz,szKey) == 0)
					return pKey;
			}
		}
		return NULL;
	}
	return NULL;
}
void CKeyDefDlg::UpdateEdit()
{
	ClearEdit();
	CKey *pKey;
	if((pKey=GetCurrentKey()))
		DisplayEdit(pKey);
	else
		ClearEdit();
}
void CKeyDefDlg::DisplayEdit(CKey *pKey)
{
	stringstream stm;
	float f;
	for(int i=0; i<pKey->GetCmd().GetSize(); i++) {
		cmd::TCmd c=pKey->GetCmd().Get(i);
		if(c == 0x0)
			break;
		int iNumPara=0;
		stm << pKey->GetCmd().GetDispText(c,iNumPara);
		if(iNumPara) {
			char *pc=(char*)&f;
			for(int j=0;j<sizeof(float)/sizeof(char);j++)
				pc[j]=pKey->GetCmd().Get(i+j+1);
			i+=j;
			stm << pKey->GetCmd().GetDispText(cmd::equals,iNumPara) << f;
		}
		stm << pKey->GetCmd().GetDispText(cmd::seperator,iNumPara);
	}
	stm << ends;
	m_strEdit=stm.str();
	SendDlgItemMessage(GetWndHandle(),IDC_EDITCMD,WM_SETTEXT,0,long(m_strEdit.c_str()));
}
void CKeyDefDlg::AssignEdit()
{
	CKey *pKey=GetCurrentKey();
	CompileKey(pKey);
	NotifyMixer();
}
void CKeyDefDlg::CompileKey(CKey*pKey)
{
	if(pKey) {
		m_strEdit=GetControlText(IDC_EDITCMD);
		pKey->Compile(m_strEdit);
		UpdateEdit();
		m_pcKeyTable->SetChanged();
	}
}
void CKeyDefDlg::StartKeyGetDlg()
{
	if(!m_pcKeyWin) {
		m_pcKeyWin=new CKeyWaitWin(GetWndHandle(),GetModuleName());
		m_pcKeyWin->Init(GetParHandle());
		POINT ptCursor;
		::GetCursorPos(&ptCursor);
		m_pcKeyWin->SetWindowClientRect(CWinRect(ptCursor.x,ptCursor.y,ptCursor.x+80,ptCursor.y+40));
		m_pcKeyWin->Create();
		::SetWindowPos(m_pcKeyWin->GetWndHandle(),HWND_TOPMOST,0,0,10,10,SWP_NOMOVE|SWP_NOSIZE);
	}
}
void CKeyDefDlg::StopKeyGetDlg()
{
	if(m_pcKeyWin) {
		delete m_pcKeyWin;
		m_pcKeyWin=NULL;
		::SetWindowPos(GetWndHandle(),HWND_TOP,0,0,10,10,SWP_NOMOVE|SWP_NOSIZE);
	}
}
void CKeyDefDlg::DeleteKey()
{
	CKey *pKey=GetCurrentKey();
	if(pKey) {
		CMixerKeyDef *pKeyDef=m_pcKeyTable->GetKeyDef(m_strSelect);
		if(pKeyDef) {
			pKeyDef->DeleteKey(pKey);
		}
	}
	UpdateKeys();
	NotifyMixer();
}
void CKeyDefDlg::NewKey()
{
	if(!m_pcKeyWin) {
		SendDlgItemMessage(GetWndHandle(),IDC_KEYS,CB_SETCURSEL,-1,0);
		StartKeyGetDlg();
		return;
	}
}
void CKeyDefDlg::AssignKey()
{
	if(!m_pcKeyWin) {
		StartKeyGetDlg();
		return;
	}else{
		int iVkScan=m_pcKeyWin->GetKey();
		long lKeyData=m_pcKeyWin->GetKeyData();
		StopKeyGetDlg();
		CKey *pKey=GetCurrentKey();
		if(pKey) {
			pKey->SetVirtKey(iVkScan,lKeyData);
			m_strKey=pKey->GetDispKey();
			UpdateKeys();
		}else{
			pKey=AddKeyToDef(iVkScan,lKeyData);
		}
		InitNewKey(pKey);
		UpdateKeys();
		NotifyMixer();
	}
}
void CKeyDefDlg::InitNewKey(CKey*pKey)
{
	if(pKey) {
		CompileKey(pKey);
		m_strKey=pKey->GetDispKey();
	}
}
CKey *CKeyDefDlg::AddKeyToDef(long iVkScan,long lKeyData)
{
	CKey *pKey=NULL;
	CMixerKeyDef *pKeyDef=m_pcKeyTable->GetKeyDef(m_strSelect);
	if(pKeyDef) {
		CKey cKey;
		cKey.SetVirtKey(iVkScan,lKeyData);
		pKeyDef->AddKey(cKey);
		pKey=pKeyDef->GetKeyClassByKey(iVkScan);
	}
	return pKey;
}
string CKeyDefDlg::GetControlText(int id)
{
	int iLen=SendDlgItemMessage(GetWndHandle(),id,WM_GETTEXTLENGTH,0,0);
	char *pszBuf=new char[iLen+1];
	SendDlgItemMessage(GetWndHandle(),id,WM_GETTEXT,iLen+1,long(pszBuf));
	string str=pszBuf;
	delete [] pszBuf;
	return str;
}
void CKeyDefDlg::NotifyMixer()
{
	::PostMessage(GetParHandle(),WM_USER,0x1,0);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四 | 成人看片黄a免费看在线| 国产精品久久久久影院亚瑟| 欧美日韩aaaaaa| 91福利社在线观看| 国产一区二区精品久久99| 美女视频黄频大全不卡视频在线播放| 久久免费视频色| 亚洲色图都市小说| 国产欧美一区二区精品婷婷| 在线观看三级视频欧美| 国产99久久精品| 美女网站视频久久| 一区二区三区精品视频| 欧美国产成人精品| 日韩写真欧美这视频| 欧美丰满美乳xxx高潮www| 欧美精品色一区二区三区| 欧美日韩国产在线播放网站| 色系网站成人免费| 欧美区视频在线观看| 亚洲精品欧美专区| 自拍偷自拍亚洲精品播放| 中文字幕一区二区三区乱码在线 | 中文字幕中文乱码欧美一区二区 | 首页亚洲欧美制服丝腿| 免费在线观看一区二区三区| 日韩精品免费视频人成| 青青草精品视频| 国产精品一卡二| 91在线国产观看| 制服视频三区第一页精品| 337p粉嫩大胆噜噜噜噜噜91av | 乱中年女人伦av一区二区| 国产·精品毛片| 欧美三级三级三级爽爽爽| 欧美一区二区三区成人| 国产亚洲1区2区3区| 亚洲丝袜美腿综合| 国产麻豆日韩欧美久久| 欧美在线观看视频一区二区三区| 欧美精品九九99久久| 日韩免费视频线观看| 国产精品久久久久永久免费观看 | 国产一区二区三区日韩| 99精品欧美一区二区三区综合在线| 一本大道av伊人久久综合| 正在播放一区二区| 中文字幕一区二区三| 免费欧美日韩国产三级电影| 99re6这里只有精品视频在线观看| 欧美精品久久久久久久多人混战| 国产精品区一区二区三| 亚洲国产成人tv| 色综合 综合色| 欧美极品美女视频| 久久精品久久精品| 欧美日韩国产系列| 亚洲一二三四久久| 日本韩国视频一区二区| 国产精品毛片大码女人| 国产精品一区二区在线观看不卡| 欧美日韩亚州综合| 亚洲成人777| 精品视频一区二区不卡| 夜夜精品视频一区二区| 欧美伊人久久久久久久久影院| 中文字幕日韩av资源站| 99精品视频一区二区| 一区二区三区四区中文字幕| 欧美系列日韩一区| 日韩二区三区在线观看| 精品欧美久久久| 韩国三级电影一区二区| 精品国产一区二区三区久久影院| 国产裸体歌舞团一区二区| 国产天堂亚洲国产碰碰| 成人福利视频网站| 亚洲国产综合色| 精品剧情在线观看| 99re热视频精品| 免费观看一级欧美片| 久久精品网站免费观看| 色婷婷久久综合| 老色鬼精品视频在线观看播放| 国产性做久久久久久| 在线欧美小视频| 国产成人亚洲综合色影视| 亚洲一区二区高清| 中文字幕免费一区| 亚洲精品久久久蜜桃| 欧美精品一区二区三区视频| 波多野结衣在线一区| 亚洲一区二区三区中文字幕在线| 国产亚洲1区2区3区| 91麻豆精品国产无毒不卡在线观看| 国产一区在线观看视频| 亚洲另类一区二区| 国产嫩草影院久久久久| 91麻豆精品国产| 欧美日韩中文精品| k8久久久一区二区三区| 国产在线播放一区二区三区| 亚洲成人一区在线| 亚洲欧洲av另类| 国产亚洲欧美在线| 欧美tickling网站挠脚心| 在线观看日韩国产| 91高清在线观看| 色哟哟日韩精品| 91麻豆免费看| 色综合久久久久综合99| 不卡在线视频中文字幕| 国产寡妇亲子伦一区二区| 视频一区二区欧美| 亚洲综合图片区| 亚洲少妇30p| 亚洲人成影院在线观看| **性色生活片久久毛片| 国产精品久久久久久一区二区三区| 日韩女优视频免费观看| 欧美一二三四区在线| 欧美成人在线直播| 日韩精品一区二区三区蜜臀| 日韩欧美二区三区| 久久综合久久鬼色中文字| 日韩午夜精品视频| 精品国产免费久久| 欧美国产成人精品| 中文字幕日韩av资源站| 最新国产の精品合集bt伙计| 一区二区日韩电影| 五月婷婷久久丁香| 美腿丝袜亚洲综合| 国产成人综合网站| 色先锋资源久久综合| 欧美一区二区三区在线看| 国产欧美日韩三区| 亚洲国产成人高清精品| 奇米影视一区二区三区小说| 国产麻豆精品在线| 欧美三级视频在线| 久久这里只有精品首页| 亚洲欧美另类综合偷拍| 蜜臀a∨国产成人精品| 波多野结衣亚洲| 欧美电影免费观看高清完整版在线| 久久你懂得1024| 午夜视频一区二区| 99久久婷婷国产综合精品电影| 制服丝袜亚洲播放| 亚洲欧美一区二区三区久本道91| 久久不见久久见免费视频7| 在线视频综合导航| 国产精品美女久久久久av爽李琼| 日韩av中文字幕一区二区三区| 99精品国产热久久91蜜凸| 久久久蜜臀国产一区二区| 午夜久久久久久电影| 色悠久久久久综合欧美99| 国产精品久久久久天堂| 激情五月婷婷综合网| 911精品国产一区二区在线| 一区二区免费看| 91久久奴性调教| 一区二区三区四区精品在线视频 | 精品国产免费一区二区三区香蕉| 免费成人av在线| 精品美女一区二区| 加勒比av一区二区| 久久精品人人爽人人爽| 国产一区二区主播在线| 日本一区二区视频在线观看| 国产高清不卡二三区| 精品国产99国产精品| 狂野欧美性猛交blacked| 精品国精品国产| 国产精品77777竹菊影视小说| 国产三级精品视频| 成人小视频在线| 亚洲女同女同女同女同女同69| 欧美亚洲国产一区在线观看网站| 午夜精品免费在线观看| 精品国产免费久久| 成人av在线影院| 午夜视频一区二区| 欧美日韩国产精品自在自线| 视频一区视频二区中文字幕| 国产欧美一区二区三区在线老狼| 成人激情电影免费在线观看| 亚洲影院免费观看| 精品国产露脸精彩对白| www.性欧美| 亚瑟在线精品视频| 欧美精品一区二区三区高清aⅴ| 国产呦萝稀缺另类资源| 成人欧美一区二区三区黑人麻豆| 884aa四虎影成人精品一区| 成人福利电影精品一区二区在线观看| 亚洲色图在线播放|