全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2592
推到 Plurk!
推到 Facebook!

waveOutGetVolume一問

尚未結案
esbcc
一般會員


發表:18
回覆:17
積分:7
註冊:2005-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-01 16:22:28 IP:61.219.xxx.xxx 未訂閱
請問一下要取得系統的喇叭音量是還要前置處理? 以下這個code所得到的值都是0 void __fastcall TForm1::FormShow(TObject *Sender) { DWORD volume1; volume1 = waveOutGetVolume(0, &volume);//取得系統原來的音量大小 ShowMessage( IntToStr(volume1 ) ); } 請指教
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-03 23:26:00 IP:211.76.xxx.xxx 未訂閱
請參考http://delphi.ktop.com.tw/topic.php?topic_id=54418 我現在沒裝BCB沒辦法幫你試,我看他的程式碼
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  DWORD volume;
  TrackBar1->Max=0xFFFF;
  TrackBar1->Position = waveOutGetVolume(0, &volume);
  TrackBar1->Position = LOWORD(volume);
}
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
  int value =  (TrackBar1->Position);
  waveOutSetVolume(0, MAKELONG(value, value));
}
所以我猜你應該是要SHOW出volume的值,而不是volume1的值,你試試看
Brian77
中階會員


發表:8
回覆:114
積分:94
註冊:2002-05-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-04 09:51:32 IP:61.61.xxx.xxx 未訂閱
經查 Win32 API MMRESULT waveOutGetVolume(HWAVEOUT hwo, LPDWORD pdwVolume); 因此音量值是放在第二個參數裡, 而其傳回值是指取得音量是否成功 0 大概是代表成功(MMSYSERR_NOERROR)吧.. 失敗的話,它是失敗代碼(MMSYSERR_INVALHANDLE,MMSYSERR_NODRIVER,MMSYSERR_NOMEM,MMSYSERR_NOTSUPPORTED)
esbcc
一般會員


發表:18
回覆:17
積分:7
註冊:2005-02-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-27 20:00:45 IP:61.219.xxx.xxx 未訂閱
謝謝兩位大大的回答,GGL大大先回答 這題就給了GGL大大.
系統時間:2024-05-02 9:07:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!