adjustvolumeimp.cpp
来自「实现了一个lib,Wince标准的方式调节系统音量」· C++ 代码 · 共 66 行
CPP
66 行
#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 + =
减小字号Ctrl + -
显示快捷键?