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

📄 effectdlg.cpp

📁 PPC流行的播放软件gsplayer源码2.24版
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include "GSPlayer2.h"
#include "EffectDlg.h"
#include "SmallSlider.h" 

CEffectDlg::CEffectDlg()
{
	m_hMap = NULL;
	InitializeSmallSliderControl();
}

CEffectDlg::~CEffectDlg()
{
	UninitializeSmallSliderControl();
}

void CEffectDlg::ShowEffectDlg(HWND hwndParent, HANDLE hMap)
{
	m_hMap = hMap;
	CTempStr strTitle(IDS_TITLE_EFFECT);

	PROPSHEETPAGE psp[4];
	memset(psp, 0, sizeof(psp));
	psp[0].dwSize = sizeof(PROPSHEETPAGE);
	psp[0].dwFlags = PSP_DEFAULT;
	psp[0].pszTemplate = MAKEINTRESOURCE(IDD_PAGE_EQUALIZER);
	psp[0].pfnDlgProc = (DLGPROC)EqualizerProc;
	psp[0].hInstance = GetInst();
	psp[0].pszIcon = NULL;
	psp[0].lParam = (LPARAM)this;
	psp[1].dwSize = sizeof(PROPSHEETPAGE);
	psp[1].dwFlags = PSP_DEFAULT;
	psp[1].pszTemplate = MAKEINTRESOURCE(IDD_PAGE_EFFECT);
	psp[1].pfnDlgProc = (DLGPROC)EffectProc;
	psp[1].hInstance = GetInst();
	psp[1].pszIcon = NULL;
	psp[1].lParam = (LPARAM)this;
	psp[2].dwSize = sizeof(PROPSHEETPAGE);
	psp[2].dwFlags = PSP_DEFAULT;
	psp[2].pszTemplate = MAKEINTRESOURCE(IDD_PAGE_REVERB);
	psp[2].pfnDlgProc = (DLGPROC)ReverbProc;
	psp[2].hInstance = GetInst();
	psp[2].pszIcon = NULL;
	psp[2].lParam = (LPARAM)this;
	psp[3].dwSize = sizeof(PROPSHEETPAGE);
	psp[3].dwFlags = PSP_DEFAULT;
	psp[3].pszTemplate = MAKEINTRESOURCE(IDD_PAGE_EFFECT_SAVE);
	psp[3].pfnDlgProc = (DLGPROC)PresetProc;
	psp[3].hInstance = GetInst();
	psp[3].pszIcon = NULL;
	psp[3].lParam = (LPARAM)this;
	
	PROPSHEETHEADER psh;
	psh.dwSize = sizeof(PROPSHEETHEADER);
	psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW | PSH_USECALLBACK;
	psh.pfnCallback = PropSheetCallback;
	psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
	psh.nStartPage = 0;
	psh.pszIcon = NULL;
	psh.pszCaption = strTitle;
	psh.hwndParent = hwndParent;
	psh.hInstance = GetInst();
	psh.ppsp = psp;
	PropertySheet(&psh);
}

BOOL CALLBACK CEffectDlg::EqualizerProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	static CEffectDlg* pDlg;
	switch (uMsg) {
		case WM_INITDIALOG:
		{
			pDlg = (CEffectDlg*)((LPPROPSHEETPAGE)lParam)->lParam;
			pDlg->EqualizerOnInitDialog(hwndDlg);
			return TRUE;
		}
		case WM_COMMAND:
			return pDlg->EqualizerOnCommand(hwndDlg, wParam, lParam);
		case WM_HSCROLL:
		case WM_VSCROLL:
			pDlg->EqualizerOnScroll(hwndDlg);
			return TRUE;
		case WM_NOTIFY:
		{
			NMHDR* phdr = (NMHDR*)lParam;
			if (phdr->code == PSN_SETACTIVE) {
				pDlg->EqualizerOnActivate(hwndDlg);
				return TRUE;
			}
			return FALSE;
		}
		default:
			return FALSE;
	}
}

BOOL CALLBACK CEffectDlg::EffectProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	static CEffectDlg* pDlg;
	switch (uMsg) {
		case WM_INITDIALOG:
			pDlg = (CEffectDlg*)((LPPROPSHEETPAGE)lParam)->lParam;
			pDlg->EffectOnInitDialog(hwndDlg);
			return TRUE;
		case WM_COMMAND:
			return pDlg->EffectOnCommand(hwndDlg, wParam, lParam);
		case WM_HSCROLL:
		case WM_VSCROLL:
			pDlg->EffectOnScroll(hwndDlg);
			return TRUE;
		case WM_NOTIFY:
		{
			NMHDR* phdr = (NMHDR*)lParam;
			if (phdr->code == PSN_SETACTIVE) {
				pDlg->EffectOnActivate(hwndDlg);
				return TRUE;
			}
			return FALSE;
		}
		default:
			return FALSE;
	}
}

BOOL CALLBACK CEffectDlg::ReverbProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	static CEffectDlg* pDlg;
	switch (uMsg) {
		case WM_INITDIALOG:
			pDlg = (CEffectDlg*)((LPPROPSHEETPAGE)lParam)->lParam;
			pDlg->ReverbOnInitDialog(hwndDlg);
			return TRUE;
		case WM_COMMAND:
			return pDlg->ReverbOnCommand(hwndDlg, wParam, lParam);
		case WM_HSCROLL:
		case WM_VSCROLL:
			pDlg->ReverbOnScroll(hwndDlg);
			return TRUE;
		case WM_NOTIFY:
		{
			NMHDR* phdr = (NMHDR*)lParam;
			if (phdr->code == PSN_SETACTIVE) {
				pDlg->ReverbOnActivate(hwndDlg);
				return TRUE;
			}
			return FALSE;
		}
		default:
			return FALSE;
	}
}

BOOL CALLBACK CEffectDlg::PresetProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	static CEffectDlg* pDlg;
	switch (uMsg) {
		case WM_INITDIALOG:
			pDlg = (CEffectDlg*)((LPPROPSHEETPAGE)lParam)->lParam;
			pDlg->PresetOnInitDialog(hwndDlg);
			return TRUE;
		case WM_COMMAND:
			return pDlg->PresetOnCommand(hwndDlg, wParam, lParam);
		case WM_NOTIFY:
			return pDlg->PresetOnNotify(hwndDlg, (NMHDR*)lParam);
		default:
			return FALSE;
	}
}

void CEffectDlg::EqualizerOnInitDialog(HWND hwndDlg)
{
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ1), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ2), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ3), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ4), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ5), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ6), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ7), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ8), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ9), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ10), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_PREAMP), TBM_SETRANGE, FALSE, MAKELONG(EQUALIZER_DATA_MAX, EQUALIZER_DATA_MIN));	
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_BASSBOOST), TBM_SETRANGE, FALSE, MAKELONG(0, 20));

	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ1), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ2), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ3), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ4), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ5), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ6), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ7), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ8), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ9), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_EQ10), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_PREAMP), TBM_SETTIC, 0, 31);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_SURROUND), TBM_SETTIC, 0, 50);
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_BASSBOOST), TBM_SETTIC, 0, 10);
}

void CEffectDlg::EffectOnInitDialog(HWND hwndDlg)
{
	int i;
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_SURROUND), TBM_SETRANGE, FALSE, MAKELONG(0, 100));
	for (i = 0; i < 100; i += 20)
		SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_SURROUND), TBM_SETTIC, 0, i);
	
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_3DCHORUS), TBM_SETRANGE, FALSE, MAKELONG(0, 100));
	for (i = 0; i < 100; i += 20)
		SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_3DCHORUS), TBM_SETTIC, 0, i);
}

void CEffectDlg::ReverbOnInitDialog(HWND hwndDlg)
{
	int i;
	SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_REVERB), TBM_SETRANGE, FALSE, MAKELONG(0, 6));
	for (i = 0; i < 7; i += 1)
		SendMessage(GetDlgItem(hwndDlg, IDC_SLIDER_REVERB), TBM_SETTIC, 0, i);

⌨️ 快捷键说明

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