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

📄 adjustvolumeimp.cpp

📁 实现了一个lib,Wince标准的方式调节系统音量
💻 CPP
字号:
#include "stdafx.h"
#include "AdjustVolumeInterface.h"
#include "creg.hxx"

#define MAX_VOLUME 0xffffffff
#define MIN_VOLUME 0x00000000

DWORD GetCurrentVolume()
{
	CReg reg( HKEY_CURRENT_USER, _T("ControlPanel\\Volume") );
	return reg.ValueDW( _T("Volume"), 0x99999999 );
}

void SetVolume(DWORD dwVolume)
{
	CReg reg( HKEY_CURRENT_USER, _T("ControlPanel\\Volume") );
	
	if( waveOutSetVolume(NULL, dwVolume) != MMSYSERR_NOERROR )
	{
		AfxMessageBox(_T("SetVolume waveOutSetVolume error"));
	}

	reg.SetDW(_T("Volume"),dwVolume);
}

DWORD ChangeSoundVolume(DWORD dwNewVolume)
{
	DWORD dwOldVolume = GetCurrentVolume();
	
	SetVolume(dwNewVolume);

	return dwOldVolume;
}

void AddVolume( int nLevel )
{
	//get current volume
	DWORD dwCurrentVolume = GetCurrentVolume();

	if( dwCurrentVolume >= MAX_VOLUME )
	{
		return;
	}

	//add volume
	DWORD dwSetp = MAX_VOLUME / nLevel;
	DWORD dwNewVolume = dwCurrentVolume / dwSetp * dwSetp + dwSetp;
	SetVolume(dwNewVolume > MAX_VOLUME ? MAX_VOLUME : dwNewVolume);
}

void ReduceVolume( int nLevel )
{
	//get current volume
	DWORD dwCurrentVolume = GetCurrentVolume();

	if( dwCurrentVolume <= MIN_VOLUME )
	{
		return;
	}

	//reduce volume
	DWORD dwSetp = MAX_VOLUME / nLevel;
	DWORD dwNewVolume = dwCurrentVolume / dwSetp * dwSetp - dwSetp;
	SetVolume(dwNewVolume < MIN_VOLUME ? MIN_VOLUME : dwNewVolume);
}

⌨️ 快捷键说明

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