* 먼저 소스코드를 작성하기 전에 아래와 같은 순서로 하시면 됩니다.
[1] #include 부분에서 mmsystem.h 를 선언합니다. 그리고 프로젝트(Project) ->
세팅(Setting) -> 링크(Link)에서 Object/library modules: 이부분에 winmm.lib를
추가(작성)해줍니다. * 또 다른 방법으로는 #include 부분에서 mmsystem.h 를 선언한 후 프로젝트(Project) ->
추가(Add To Project) -> 컴포넌트 & 콘트롤(Componemts and Control) -> Visual C++ Components
-> Windows Multimedia library 를 선택하셔도 됩니다.
[2] 다이얼로그 protected 부분에서 virtual void SetMusicVolume(float fPercent); 선언class 다이얼로그명 : public CDialog
{
.
. protected: // 이부분에서 아래와 같이 선언을 해줍니다. virtual void SetMusicVolume(float fPercent);
.
.
[3] 코드내부에 아래 소스코드 작성void 다이얼로그명::SetMusicVolume(float fPercent)
{
DWORD dVolume=0xffffffff;
WORD left=HIWORD(dVolume),right=LOWORD(dVolume);
right=UINT(right*fPercent);
left =UINT(left *fPercent);
dVolume=left;
dVolume=dVolume<<16;
dVolume=dVolume+ right;
waveOutSetVolume(NULL,dVolume);
}
[4] 원하는 항목에 아래와 같이 작성합니다.SetMusicVolume(100); // 100을 하면 소리가 나오고
SetMusicVolume(0); // 0을 하면 음소거 기능처럼 소리가 나오지 않습니다.
SetMusicVolume(NULL); // NULL 값을 줘도 음소거 기능처럼 소리가 나오지 않습니다.
시스템의 볼륨을 조절하는 함수에는
mixerOpen, mixerGetDevCaps, mixerClose, mixerGetLineInfo, mixerGetLineControls, mixerGetControlDetails, mixerSetControlDetails 등의 함수가 사용된다.
참고 사이트 : http://www.codeproject.com/audio/admixer.asp(두번째 예제(Program 2. Master Volume) 에서 MIXERLINE_COMPONENTTYPE_DST_SPEAKERS 인자를 MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT 로 수정하면 조절할 수 있는 항목이 (마스터) 볼륨 컨트롤에서 웨이브 로 바뀐다)또한 MSDN 의 HOWTO: Monitor Audio Volume Levels 기술문서에서 예제를 찾을 수 있다 (Q181550)
'C & C++ > C & C++' 카테고리의 다른 글
특정 문자열 기준으로 자르기 (0) | 2011.12.14 |
---|---|
ini 파일 저장 및 읽기 (0) | 2011.12.14 |
타이머 및 진행 시간 표시 (0) | 2011.12.14 |
파일( 문자열 )암호화 하기 (0) | 2011.12.14 |
[Tip] 스크린 세이버 동작 못하게 (0) | 2011.12.14 |
댓글