看了一篇代碼關于音樂播放的,試著跑了下,發現播放時候音量調節那個模塊滑動滑條時音量并不會改變,仔細看了下不知道什么問題,請教下大神,謝謝么么噠。
//開始時候界面
BOOL Cmfc_music_playerDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 將“關于...”選單項添加到系統選單中。
// IDM_ABOUTBOX 必須在系統命令范圍內。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 設定此對話框的圖示。當應用程式主視窗不是對話框時,框架將自動
// 執行此操作
SetIcon(m_hIcon, TRUE); // 設定大圖示
SetIcon(m_hIcon, FALSE); // 設定小圖示
m_slider.SetRange(0, 100); //滑動條的移動范圍 0~1000
m_slider.SetPos(50); //滑動條的指標處置位置為500,代表初試音量為500
GetDlgItem(IDC_play)->EnableWindow(false); //檔案沒有讀取時所有按鈕不可選
GetDlgItem(IDC_pause)->EnableWindow(false);
GetDlgItem(IDC_stop)->EnableWindow(false);
// TODO: 在此添加額外的初始化代碼
return TRUE; // 除非將焦點設定到控制元件,否則回傳 TRUE
}
//設定音量
DWORD setVolume(DWORD vol)
{
MCI_DGV_SETAUDIO_PARMS setvolume; //設定音量的引數
setvolume.dwCallback = NULL; //
setvolume.dwItem = MCI_DGV_SETAUDIO_VOLUME; //動作是設定音量
setvolume.dwValue = vol; //音量值是vol
mciSendCommand(DeviceId, MCI_SETAUDIO, MCI_DGV_SETAUDIO_ITEM | MCI_DGV_SETAUDIO_VALUE, (DWORD)(LPVOID)&setvolume);
return 0;
}
//滑條對應函式
void Cmfc_music_playerDlg::OnCustomdrawSlider(NMHDR *pNMHDR, LRESULT *pResult)
{
UpdateData(true);
m_int = m_slider.GetPos() ;
setVolume(m_slider.GetPos());
UpdateData(false);
//LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
// TODO: 在此添加控制元件通知處理程式代碼
*pResult = 0;
}
uj5u.com熱心網友回復:
得用上MCI_DGV_SETAUDIO_VOLUME吧uj5u.com熱心網友回復:

嗯嗯,我試試
uj5u.com熱心網友回復:
UpdateData(true);m_int = m_slider.GetPos() ;
m_play.setvolume(m_int);
UpdateData(false);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/85617.html
標籤:基礎類
上一篇:英文程式顯示多國語言的問題
下一篇:C語言下opencv的配置
