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

📄 optionsdlg.cpp

📁 mp3 频谱分析源码, mp3播放器开发必备源码,
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		Plugin.hCurDlg = CreateDialog((HINSTANCE)GetWindowLong(hDlg,GWL_HINSTANCE),(LPCTSTR)IDD_CONF_WND,hTab,ChildDlgProc);
		ShowWindow(Plugin.hCurDlg,SW_SHOW);
		break;
	case 1:
		Plugin.hCurDlg = CreateDialog((HINSTANCE)GetWindowLong(hDlg,GWL_HINSTANCE),(LPCTSTR)IDD_CONF_BARS,hTab,ChildDlgProc);
		ShowWindow(Plugin.hCurDlg,SW_SHOW);
		break;
	case 2:
		Plugin.hCurDlg = CreateDialog((HINSTANCE)GetWindowLong(hDlg,GWL_HINSTANCE),(LPCTSTR)IDD_CONF_PEAKS,hTab,ChildDlgProc);
		ShowWindow(Plugin.hCurDlg,SW_SHOW);
		break;
	case 3:
		Plugin.hCurDlg = CreateDialog((HINSTANCE)GetWindowLong(hDlg,GWL_HINSTANCE),(LPCTSTR)IDD_CONF_GRID,hTab,ChildDlgProc);
		ShowWindow(Plugin.hCurDlg,SW_SHOW);
		break;
	case 4:
		Plugin.hCurDlg = CreateDialog((HINSTANCE)GetWindowLong(hDlg,GWL_HINSTANCE),(LPCTSTR)IDD_CONF_ADV,hTab,ChildDlgProc);
		ShowWindow(Plugin.hCurDlg,SW_SHOW);
		break;
	case 5:
		Plugin.hCurDlg = CreateDialog((HINSTANCE)GetWindowLong(hDlg,GWL_HINSTANCE),(LPCTSTR)IDD_CONF_SKIN,hTab,ChildDlgProc);
		ShowWindow(Plugin.hCurDlg,SW_SHOW);
		break;
	default:
		break;
	}
	return true;
}

void OnDestroyTabSec(int nID)
{
	switch(nID) {
	case 0:
		g_Settings.bSaveWndPos = GetCheckState(Plugin.hCurDlg,IDC_WND_SAVEPOS);
		g_Settings.bDoubleSize = GetCheckState(Plugin.hCurDlg,IDC_WND_DBLSIZE);
		g_Settings.bDimTitleBar = GetCheckState(Plugin.hCurDlg,IDC_WND_DIMTITLE);
		g_Settings.bSnapWindow = GetCheckState(Plugin.hCurDlg,IDC_WND_SNAP);
		g_Settings.bWinampCursor = GetCheckState(Plugin.hCurDlg,IDC_WND_CURSOR);
		g_Settings.ulWindowSnap = GetEditNum(Plugin.hCurDlg,IDC_WND_SNAPDST);
		break;
	case 1:
		g_Settings.bWantBars = GetCheckState(Plugin.hCurDlg,IDC_BARS_ENABLE);
		g_Settings.bFilter = GetCheckState(Plugin.hCurDlg,IDC_BARS_FILTER);
		g_Settings.bRemap = GetCheckState(Plugin.hCurDlg,IDC_BARS_LEVEL);
		g_Settings.uchBarWidth = GetSliderPos(Plugin.hCurDlg,IDC_BARS_SWIDTH);
		g_Settings.uchBarHorzGap = GetSliderPos(Plugin.hCurDlg,IDC_BARS_SHORZ);
		// recalculate slider scale
		if(g_Settings.uchBarHorzGap >= (g_Settings.uchBarWidth-1)) g_Settings.uchBarHorzGap = (g_Settings.uchBarWidth -1);
		g_Settings.uchBarVertGap = GetSliderPos(Plugin.hCurDlg,IDC_BARS_SVERT);
		g_Settings.uchMaxDecrease = GetSliderPos(Plugin.hCurDlg,IDC_BARS_SFALLOFF);
		g_Settings.uchMaxIncrease = GetSliderPos(Plugin.hCurDlg,IDC_BARS_SGAIN);
		
		if(!GetCheckState(Plugin.hCurDlg,IDC_STYLE_NORMAL)) {
			if(!GetCheckState(Plugin.hCurDlg,IDC_STYLE_FIRE)) {
				g_Settings.uchBarStyle = 2;
			}
			else
				g_Settings.uchBarStyle = 1;
		}
		else 
			g_Settings.uchBarStyle = 0;
		break;	
	case 2:
		g_Settings.bWantPeaks = GetCheckState(Plugin.hCurDlg,IDC_PEAK_ENABLE);
		g_Settings.uchPeakDelay = GetEditNum(Plugin.hCurDlg,IDC_PEAK_EDELAY);
		g_Settings.uchPeakDrop = GetEditNum(Plugin.hCurDlg,IDC_PEAK_EDROP);
		break;		
	case 3:
		g_Settings.bWantGrid = GetCheckState(Plugin.hCurDlg,IDC_GRID_ENABLE);
		g_Settings.uchGridWidth = GetSliderPos(Plugin.hCurDlg,IDC_GRID_SWIDTH);
		g_Settings.uchGridVertGap = GetSliderPos(Plugin.hCurDlg,IDC_GRID_SVERT);
		g_Settings.uchGridHorzGap = GetSliderPos(Plugin.hCurDlg,IDC_GRID_SHORZ);
		if(g_Settings.uchGridHorzGap >= (g_Settings.uchGridWidth-1)) g_Settings.uchGridHorzGap = (g_Settings.uchGridWidth -1);
		break;
	case 4:
		g_Settings.nLatency = GetSliderPos(Plugin.hCurDlg,IDC_ADV_LATENCY);
		g_Settings.nDelayMS = (1000/GetSliderPos(Plugin.hCurDlg,IDC_ADV_FRATE));
		break;
	case 5:
		if(!Plugin.hMemDC) {
			DeleteObject(Plugin.hBmpSkin);
			Plugin.hBmpSkin = NULL;
		}
		break;
	default:
		break;
	}
}

void LoadPageSettings(HWND hDlg, int nID)
{
	switch(nID) {
		case 0:
			CheckCheckBox(hDlg,IDC_WND_SAVEPOS,g_Settings.bSaveWndPos);
			CheckCheckBox(hDlg,IDC_WND_DBLSIZE,g_Settings.bDoubleSize);
			CheckCheckBox(hDlg,IDC_WND_DIMTITLE,g_Settings.bDimTitleBar);
			CheckCheckBox(hDlg,IDC_WND_SNAP,g_Settings.bSnapWindow);
			CheckCheckBox(hDlg,IDC_WND_CURSOR,g_Settings.bWinampCursor);
			SetEditNumber(hDlg,IDC_WND_SNAPDST,g_Settings.ulWindowSnap);
			break;
		case 1:
			CheckCheckBox(hDlg,IDC_BARS_ENABLE,g_Settings.bWantBars);
			CheckCheckBox(hDlg,IDC_BARS_FILTER,g_Settings.bFilter);
			CheckCheckBox(hDlg,IDC_BARS_LEVEL,g_Settings.bRemap);
			SetSliderParms(hDlg,IDC_BARS_SWIDTH,1,128,g_Settings.uchBarWidth);
			SetSliderParms(hDlg,IDC_BARS_SHORZ,0,255 - (255 - (g_Settings.uchBarWidth-1)),g_Settings.uchBarHorzGap);
			SetSliderParms(hDlg,IDC_BARS_SVERT,0,16,g_Settings.uchBarVertGap);
			SetSliderParms(hDlg,IDC_BARS_SFALLOFF,1,255,g_Settings.uchMaxDecrease);
			SetSliderParms(hDlg,IDC_BARS_SGAIN,1,255,g_Settings.uchMaxIncrease);
			switch(g_Settings.uchBarStyle) {
			case 0:
				CheckCheckBox(hDlg,IDC_STYLE_NORMAL,true);
				break;
			case 1:
				CheckCheckBox(hDlg,IDC_STYLE_FIRE,true);
				break;
			case 2:
				CheckCheckBox(hDlg,IDC_STYLE_LINE,true);
				break;
			default:	
				CheckCheckBox(hDlg,IDC_STYLE_NORMAL,true);
				break;
			}
			break;
		case 2:
			CheckCheckBox(hDlg,IDC_PEAK_ENABLE,g_Settings.bWantPeaks);
			SetEditNumber(hDlg,IDC_PEAK_EDELAY,g_Settings.uchPeakDelay);
			SetEditNumber(hDlg,IDC_PEAK_EDROP,g_Settings.uchPeakDrop);
			break;
		case 3:
			CheckCheckBox(hDlg,IDC_GRID_ENABLE,g_Settings.bWantGrid);
			SetSliderParms(hDlg,IDC_GRID_SWIDTH,2,127,g_Settings.uchGridWidth);
			SetSliderParms(hDlg,IDC_GRID_SVERT,0,16,g_Settings.uchGridVertGap);
			SetSliderParms(hDlg,IDC_GRID_SHORZ,0,255 - (255 - (g_Settings.uchGridWidth-1)),g_Settings.uchGridHorzGap);
			break;
		case 4:
			SetSliderParms(hDlg,IDC_ADV_LATENCY,10,100,g_Settings.nLatency);
			SetSliderParms(hDlg,IDC_ADV_FRATE,1,100,1000/g_pMod->delayMs);
			break;
		case 5:
			if(!Plugin.hBmpSkin) {
				LoadSkin();
				Plugin.hMemDC = NULL;
			}
			PaintCurrentSkinToDialog(hDlg);
			break;
		default:
			break;
	}
}

int GetSliderPos(HWND hDlg, int nID)
{
	return (int) SendDlgItemMessage(hDlg,nID,TBM_GETPOS,0,0);
}

int GetEditNum(HWND hDlg, int nID)
{
	long l = SendDlgItemMessage(hDlg,nID,WM_GETTEXTLENGTH,0,0);
	char* szStr = new char[l+1];
	SendDlgItemMessage(hDlg,nID,WM_GETTEXT,l+1,(long)szStr);
	int i = atoi(szStr);
	delete[] szStr;
	return i;
}

bool GetCheckState(HWND hDlg, int nID)
{
	
	long l = SendDlgItemMessage(Plugin.hCurDlg,nID,BM_GETCHECK,0,0);
	if(l==BST_CHECKED) 
		return true;
	else
		return false;
}

bool CheckCheckBox(HWND hDlg, int nID, bool bCheck)
{
	if(bCheck) 
		return SendDlgItemMessage(hDlg,nID,BM_SETCHECK,BST_CHECKED,0)!=0;
	else
		return SendDlgItemMessage(hDlg,nID,BM_SETCHECK,BST_UNCHECKED,0)!=0;
}

bool SetEditNumber(HWND hDlg, int nID, int nNum)
{
	char* szStr= new char[256];

	itoa(nNum,szStr,10);

	SendDlgItemMessage(hDlg,nID,WM_SETTEXT,0,(long)szStr);
	
	delete[] szStr;

	return true;
}

bool SetSliderParms(HWND hDlg, int nID, int nMin, int nMax, int nPos)
{
	SendDlgItemMessage(hDlg,nID,TBM_SETRANGE,TRUE,MAKELONG(nMin,nMax));
	SendDlgItemMessage(hDlg,nID,TBM_SETPOS,TRUE,(long)nPos);
	return true;
}

void tabAddPage(HWND hDlg, int nID, int nIndex, const char* lpText)
{
	TCITEM ItemData;
	ItemData.mask   =  TCIF_TEXT;
	ItemData.pszText = const_cast<char*>(lpText);
	SendDlgItemMessage(hDlg,nID,TCM_INSERTITEM,nIndex,(LPARAM)&ItemData);
}

bool StdOpenDialog(HWND hWndParent, const char* lpTitle, const char* lpExtensions, char* lpBuffer, int nBufferSize)
{
	bool bResult=false;

	if(!lpBuffer) return false;

	lpBuffer[0] = 0;

	OPENFILENAME ofnFile;
	ZeroMemory(&ofnFile,sizeof(OPENFILENAME));

	ofnFile.lStructSize			= sizeof(OPENFILENAME);
	ofnFile.hwndOwner			= hWndParent;
	ofnFile.hInstance			= (HINSTANCE)GetWindowLong(hWndParent,GWL_HINSTANCE);
	ofnFile.lpstrFile			= lpBuffer;
	ofnFile.nMaxFile			= nBufferSize;
	ofnFile.lpstrFilter			= const_cast<char*>(lpExtensions);
	ofnFile.nFilterIndex		= 0;
	ofnFile.lpstrFileTitle		= NULL;
	ofnFile.nMaxFileTitle		= 0;
	ofnFile.lpstrInitialDir		= NULL;
	ofnFile.Flags				= OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
	ofnFile.lpstrCustomFilter	= NULL;
	ofnFile.nMaxCustFilter		= 0;
	ofnFile.lpstrTitle			= const_cast<char*>(lpTitle);
	ofnFile.nFileOffset			= 0;
    ofnFile.nFileExtension		= 0;
    ofnFile.lpstrDefExt			= NULL;
    ofnFile.lpfnHook 			= NULL;
	
	if(GetOpenFileName(&ofnFile)==TRUE) {
		return true;
	}
	return false;
}

void PaintCurrentSkinToDialog(HWND hDlg)
{
	HDC hDC = GetDC(hDlg);
	BitmapBltEx(hDC, Plugin.hBmpSkin, 24, 53, 275, 153, 0, 0);
	ReleaseDC(hDlg,hDC);
}
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -