⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap07.html

📁 利用软件开发
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<P>&#9;virtual BOOL OnInitDialog();</P>
<P>&#9;afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);</P>
<P>&#9;//}}AFX_MSG</P>
<P>&#9;DECLARE_MESSAGE_MAP()</P>
<P>};</P>

<P>// BalanceDlg.cpp : 实现文件</P>
<P>//</P>

<P>#include "stdafx.h"</P>
<P>#include "VideoPlayer.h"</P>
<P>#include "BalanceDlg.h"</P>
<P>#include "activemovie.h"</P>

<P>/////////////////////////////////////////////////////////////////////////////</P>
<P>// CBalanceDlg 对话框</P>

<P> </P>
<P>CBalanceDlg::CBalanceDlg(CWnd* pParent /*=NULL*/)</P>
<P>&#9;: CDialog(CBalanceDlg::IDD, pParent)</P>
<P>{</P>
<P>&#9;//{{AFX_DATA_INIT(CBalanceDlg)</P>
<P>&#9;&#9;// NOTE: the ClassWizard will add member initialization here</P>
<P>&#9;//}}AFX_DATA_INIT</P>
<P>}</P>

<P> </P>
<P>void CBalanceDlg::DoDataExchange(CDataExchange* pDX)</P>
<P>{</P>
<P>&#9;CDialog::DoDataExchange(pDX);</P>
<P>&#9;//{{AFX_DATA_MAP(CBalanceDlg)</P>
<P>&#9;DDX_Control(pDX, IDC_SLIDER1, m_sld);</P>
<P>&#9;//}}AFX_DATA_MAP</P>
<P>}</P>

<P> </P>
<P>BEGIN_MESSAGE_MAP(CBalanceDlg, CDialog)</P>
<P>&#9;//{{AFX_MSG_MAP(CBalanceDlg)</P>
<P>&#9;ON_WM_HSCROLL()</P>
<P>&#9;//}}AFX_MSG_MAP</P>
<P>END_MESSAGE_MAP()</P>

<P>/////////////////////////////////////////////////////////////////////////////</P>
<P>// CBalanceDlg 消息处理函数</P>

<P>BOOL CBalanceDlg::OnInitDialog() </P>
<P>{</P>
<P>&#9;CDialog::OnInitDialog();</P>
<P>&#9;</P>
<P>&#9;// 初始化音量调节滑块的最大值和最小值、标度以及当前位置等</P>
<P>&#9;m_sld.SetRange(-10000, 10000);</P>
<P>&#9;m_sld.SetTicFreq(2000);</P>
<P>&#9;m_sld.SetLineSize(500);</P>
<P>&#9;m_sld.SetPageSize(2000);</P>
<P>&#9;m_sld.SetPos(m_pAmovie-&gt;GetBalance());</P>
<P>&#9;</P>
<P>&#9;return TRUE;</P>
<P>}</P>

<P>// 提供给类外部的使用者的接口方法</P>
<P>void CBalanceDlg::SetBalance(CActiveMovie * pAmovie)</P>
<P>{</P>
<P>&#9;m_pAmovie=pAmovie;</P>
<P>&#9;// 如果当前 ActiveMovie 未加载任何文件,则音量调节不可用并弹出出错信息</P>
<P>&#9;// ActiveMovie 控件的 CurrentState 属性返回了当前控件的状态,-1 表示未加载任何文件</P>
<P>&#9;if (m_pAmovie-&gt;GetCurrentState()!=-1)</P>
<P>&#9;{</P>
<P>&#9;&#9;DoModal();</P>
<P>&#9;}</P>
<P>&#9;else</P>
<P>&#9;{</P>
<P>&#9;&#9;MessageBox("音频设备尚未加载,请先打开一个媒体文件。");</P>
<P>&#9;}</P>
<P>}</P>

<P>// 当用户在拖动或点击滑块时,将用户的改变立即作用于 ActiveMovie 控件</P>
<P>void CBalanceDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) </P>
<P>{</P>
<P>&#9;CSliderCtrl *pSlider=(CSliderCtrl *)pScrollBar;</P>
<P>&#9;// 得到滑块控件的当前位置</P>
<P>&#9;int nVolume=pSlider-&gt;GetPos();</P>
<P>&#9;// 设置 ActiveMovie 控件的当前的声道平衡设置</P>
<P>&#9;m_pAmovie-&gt;SetBalance(nVolume);</P>
<P>&#9;CDialog::OnHScroll(nSBCode, nPos, pScrollBar);</P>
<P>}</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">9.&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>按下面所给的代码来修改类</FONT><FONT SIZE=3>CVideoPlayerDlg</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,在注意的是,这里的大部分菜单处理的声明是使用</FONT><FONT SIZE=3>ClassWizard</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>添加的:</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=1><P>// VideoPlayerDlg.h : 头文件</P>
<P>//</P>
<P>//{{AFX_INCLUDES()</P>
<P>#include "activemovie.h"</P>
<P>//}}AFX_INCLUDES</P>

<P>/////////////////////////////////////////////////////////////////////////////</P>
<P>// CVideoPlayerDlg 对话框</P>

<P>class CVideoPlayerDlg : public CDialog</P>
<P>{</P>
<P>// 构造</P>
<P>public:</P>
<P>&#9;CVideoPlayerDlg(CWnd* pParent = NULL);&#9;// 标准构造函数</P>

<P>// 对话框数据</P>
<P>&#9;//{{AFX_DATA(CVideoPlayerDlg)</P>
<P>&#9;enum { IDD = IDD_VIDEOPLAYER_DIALOG };</P>
<P>&#9;CActiveMovie&#9;m_amovie;</P>
<P>&#9;//}}AFX_DATA</P>

<P>&#9;//{{AFX_VIRTUAL(CVideoPlayerDlg)</P>
<P>&#9;protected:</P>
<P>&#9;virtual void DoDataExchange(CDataExchange* pDX);&#9;// DDX/DDV 支持</P>
<P>&#9;//}}AFX_VIRTUAL</P>

<P>// 实现</P>
<P>protected:</P>
<P>&#9;void MoveMovieWindow();</P>
<P>&#9;HICON m_hIcon;</P>

<P>&#9;//{{AFX_MSG(CVideoPlayerDlg)</P>
<P>&#9;virtual BOOL OnInitDialog();</P>
<P>&#9;afx_msg void OnSysCommand(UINT nID, LPARAM lParam);</P>
<P>&#9;afx_msg void OnPaint();</P>
<P>&#9;afx_msg HCURSOR OnQueryDragIcon();</P>
<P>&#9;afx_msg void OnFileOpen();</P>
<P>&#9;afx_msg void OnOpenCompleteAmovie();</P>
<P>&#9;afx_msg void OnReadyStateChangeAmovie(long ReadyState);</P>
<P>&#9;afx_msg void OnFileClose();</P>
<P>&#9;afx_msg void OnStateChangeAmovie(long oldState, long newState);</P>
<P>&#9;afx_msg void OnDisplayModeChangeAmovie();</P>
<P>&#9;afx_msg void OnFileExit();</P>
<P>&#9;afx_msg void OnPlayStart();</P>
<P>&#9;afx_msg void OnPlayStop();</P>
<P>&#9;afx_msg void OnAudeoVolumn();</P>
<P>&#9;afx_msg void OnErrorAmovie(short SCode, LPCTSTR Description, </P>
<P>&#9;&#9;LPCTSTR Source, BOOL FAR* CancelDisplay);</P>
<P>&#9;afx_msg void OnAudeoBalance();</P>
<P>&#9;afx_msg void OnVideo1x();</P>
<P>&#9;afx_msg void OnVideo2x();</P>
<P>&#9;afx_msg void OnPlayPause();</P>
<P>&#9;afx_msg void OnHelpAbout();</P>
<P>&#9;DECLARE_EVENTSINK_MAP()</P>
<P>&#9;//}}AFX_MSG</P>
<P>&#9;DECLARE_MESSAGE_MAP()</P>
<P>};</P>

<P>// VideoPlayerDlg.cpp : 实现文件</P>
<P>//</P>

<P>#include "stdafx.h"</P>
<P>#include "VideoPlayer.h"</P>
<P>#include "VideoPlayerDlg.h"</P>
<P>#include "VolumnDlg.h"</P>
<P>#include "BalanceDlg.h"</P>

<P>// 在此省略了定义和实现类 CAboutDlg 的代码</P>
<P>// ...</P>

<P>/////////////////////////////////////////////////////////////////////////////</P>
<P>// CVideoPlayerDlg 对话框</P>

<P>CVideoPlayerDlg::CVideoPlayerDlg(CWnd* pParent /*=NULL*/)</P>
<P>&#9;: CDialog(CVideoPlayerDlg::IDD, pParent)</P>
<P>{</P>
<P>&#9;//{{AFX_DATA_INIT(CVideoPlayerDlg)</P>
<P>&#9;//}}AFX_DATA_INIT</P>
<P>&#9;// 注意:LoadIcon 函数并不需要的后面调用 Win32 中的 DestroyIcon</P>
<P>&#9;m_hIcon = AfxGetApp()-&gt;LoadIcon(IDR_MAINFRAME);</P>
<P>}</P>

<P>void CVideoPlayerDlg::DoDataExchange(CDataExchange* pDX)</P>
<P>{</P>
<P>&#9;CDialog::DoDataExchange(pDX);</P>
<P>&#9;//{{AFX_DATA_MAP(CVideoPlayerDlg)</P>
<P>&#9;DDX_Control(pDX, IDC_AMOVIE, m_amovie);</P>
<P>&#9;//}}AFX_DATA_MAP</P>
<P>}</P>

<P>// 类 CVideoPlayerDlg 的消息映射</P>
<P>BEGIN_MESSAGE_MAP(CVideoPlayerDlg, CDialog)</P>
<P>&#9;//{{AFX_MSG_MAP(CVideoPlayerDlg)</P>
<P>&#9;ON_WM_SYSCOMMAND()</P>
<P>&#9;ON_WM_PAINT()</P>
<P>&#9;ON_WM_QUERYDRAGICON()</P>
<P>&#9;ON_COMMAND(ID_FILEOPEN, OnFileOpen)</P>
<P>&#9;ON_COMMAND(ID_FILECLOSE, OnFileClose)</P>
<P>&#9;ON_COMMAND(ID_FILEEXIT, OnFileExit)</P>
<P>&#9;ON_COMMAND(ID_PLAYSTART, OnPlayStart)</P>
<P>&#9;ON_COMMAND(ID_PLAYSTOP, OnPlayStop)</P>
<P>&#9;ON_COMMAND(ID_AUDEOVOLUMN, OnAudeoVolumn)</P>
<P>&#9;ON_COMMAND(ID_AUDEOBALANCE, OnAudeoBalance)</P>
<P>&#9;ON_COMMAND(ID_VIDEO1X, OnVideo1x)</P>
<P>&#9;ON_COMMAND(ID_VIDEO2X, OnVideo2x)</P>
<P>&#9;ON_COMMAND(ID_PLAYPAUSE, OnPlayPause)</P>
<P>&#9;ON_COMMAND(ID_HELPABOUT, OnHelpAbout)</P>
<P>&#9;//}}AFX_MSG_MAP</P>
<P>END_MESSAGE_MAP()</P>

<P>/////////////////////////////////////////////////////////////////////////////</P>
<P>// CVideoPlayerDlg 消息处理函数</P>

<P>BOOL CVideoPlayerDlg::OnInitDialog()</P>
<P>{</P>
<P>&#9;CDialog::OnInitDialog();</P>

<P>&#9;// 为对话框设置图标。对于不使用对话框作为主窗口的应用程序,这一步骤由框架自动完成</P>
<P>&#9;SetIcon(m_hIcon, TRUE);&#9;&#9;&#9;// 设置大图标</P>
<P>&#9;SetIcon(m_hIcon, FALSE);&#9;&#9;// 设置小图标</P>
<P>&#9;</P>
<P>&#9;// 设置 ActiveMovie 控件的初始文件为空</P>
<P>&#9;m_amovie.SetFileName("");</P>
<P>&#9;// 改变窗口的大小以适应 ActiveMovie 控件的大小</P>
<P>&#9;MoveMovieWindow();</P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -