IDC_REALPLAYER)、按鈕(開啟/播放/暫停/停止/全螢幕/音量+/-/循環/關閉)、靜態文字顯示歌名/作者/版權/來源。m_player 及各按鈕訊息。void CPlayerDlg::OnOpen() {
static char filter[] = "RM|*.rm|MP3|*.mp3|MPEG|*.mpeg|ASF|*.asf|AVI|*.avi|WAV|*.wav|All|*.*||";
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, filter);
if (dlg.DoModal() == IDOK) {
CString path = dlg.GetPathName(); path.MakeUpper();
m_player->SetSource(path);
m_player->DoPlay();
UpdateInfo();
}
}
void CPlayerDlg::UpdateInfo() {
SetDlgItemText(IDC_STATIC_AUTHOR, m_player->GetAuthor());
SetDlgItemText(IDC_STATIC_TITLE, m_player->GetTitle());
SetDlgItemText(IDC_STATIC_COPYRIGHT, m_player->GetCopyright());
SetDlgItemText(IDC_STATIC_SOURCE, m_player->GetSource());
}
void CPlayerDlg::OnPlay() { UpdateInfo(); m_player->DoPlay(); SetTimer(1, 20, NULL); }
void CPlayerDlg::OnPause() { m_player->DoPause(); }
void CPlayerDlg::OnStop() { m_player->DoStop(); KillTimer(0); }
void CPlayerDlg::OnFullscreen() { m_player->DoPause(); m_player->SetFullScreen(); m_player->DoPlay(); }
void CPlayerDlg::OnRepeat() {
m_player->SetLoop(!m_bRepeat);
m_bRepeat = !m_bRepeat;
SetDlgItemText(IDC_REPEAT, m_bRepeat ? _T("正常") : _T("循環"));
}
void CPlayerDlg::OnUpper() {
short vol = m_player->GetVolume();
m_player->DoPause(); m_player->SetVolume(vol + 100); m_player->DoPlay();
}
void CPlayerDlg::OnLower() {
short vol = m_player->GetVolume();
m_player->DoPause(); m_player->SetVolume(vol - 100); m_player->DoPlay();
}
void CPlayerDlg::OnClose() {
AnimateWindow(GetSafeHwnd(), 1000, AW_HIDE|AW_BLEND);
KillTimer(0); DestroyWindow();
}
OnCtlColor 依控件 ID 設定文字顏色與透明背景。CWinApp::InitInstance 呼叫 SetDialogBkColor(RGB(206,227,99)) 設定對話框背景色。CButtonXP 類別美化按鈕外觀。RealPlayer G2 控件支援 RM、MP3、MPEG、AVI、WAV 等主流格式,開發效率極高,適合快速構建播放器原型。