友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
喜书网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

C语言实例教程(PDF格式)-第66章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






void SetEnableContextMenu(BOOL bNewValue);  



BOOL GetShowDisplay();  



void SetShowDisplay(BOOL bNewValue);  



BOOL GetShowControls();  



void SetShowControls(BOOL bNewValue);  



BOOL GetShowPositionControls();  



void SetShowPositionControls(BOOL bNewValue);  



BOOL GetShowSelectionControls();  



void SetShowSelectionControls(BOOL bNewValue);  



BOOL GetShowTracker();  



void SetShowTracker(BOOL bNewValue);  



BOOL GetEnablePositionControls();  



void SetEnablePositionControls(BOOL bNewValue);  



BOOL GetEnableSelectionControls();  



void SetEnableSelectionControls(BOOL bNewValue);  



BOOL GetEnableTracker();  



void SetEnableTracker(BOOL bNewValue);  



BOOL GetAllowHideDisplay();  



void SetAllowHideDisplay(BOOL bNewValue);  



BOOL GetAllowHideControls();  



void SetAllowHideControls(BOOL bNewValue);  



long GetDisplayMode();  



void SetDisplayMode(long nNewValue);  



BOOL GetAllowChangeDisplayMode();  



void SetAllowChangeDisplayMode(BOOL bNewValue);  


…………………………………………………………Page 403……………………………………………………………

LPUNKNOWN GetFilterGraph();  



void SetFilterGraph(LPUNKNOWN newValue);  



LPDISPATCH GetFilterGraphDispatch();  



unsigned long GetDisplayForeColor();  



void SetDisplayForeColor(unsigned long newValue);  



unsigned long GetDisplayBackColor();  



void SetDisplayBackColor(unsigned long newValue);  



long GetMovieWindowSize();  



void SetMovieWindowSize(long nNewValue);  



BOOL GetFullScreenMode();  



void SetFullScreenMode(BOOL bNewValue);  



BOOL GetAutoStart();  



void SetAutoStart(BOOL bNewValue);  



BOOL GetAutoRewind();  



void SetAutoRewind(BOOL bNewValue);  



long GetHWnd();  



long GetAppearance();  



void SetAppearance(long nNewValue);  



long GetBorderStyle();  



void SetBorderStyle(long nNewValue);  



BOOL GetEnabled();  



void SetEnabled(BOOL bNewValue);  



BOOL IsSoundCardEnabled();  



long GetReadyState();  



};  



//{{AFX_INSERT_LOCATION}}  


…………………………………………………………Page 404……………………………………………………………

#endif // !defined 

(AFX_ACTIVEMOVIE_H__9B0F9FA0_1F04_11D2_9717_0000B4810A31__INCLUDED_)  



尽管我们可以由此得知由该ActiveX控件所提供的各个接口属性和方 

法的参数和返回值,但是,这些信息并不足以正确的使用该ActiveX 

控件。一般来说,由第三方开发商提供的ActiveX控件都附带了对所 

提供的控件的各个接口属性和方法的说明及其与使用该控件进行程序 

设计所需的信息。  



7。 按表创建应用程序的菜单资源IDR_MENU。  



接着使用属性对话框将应用程序主对话框的菜单资源设置为 

IDR_MENU。  



8。  设计用于音量调节的对话框,该对话框如图7。5所示,其资源ID为 

IDD_VOLUME。设计完成之后使用ClassWizard为该对话框创建新的类 

CVolumeDlg,并为滑块控件映射类型为CSliderCtrl的成员变量 

m_sld。  



根据下面的代码在完成类CVolumeDlg,该类提供了外部编程接口 

SetVolume,该公有成员函数使用一个指向CActiveMovie对象的指针 

作为其参数,所进行的音量调节作用于该控件。  



这里需要注意的是,拖动或点击滑块控件时,向父窗口发送的消息是 

WM_HSCROLL,该消息的处理函数OnHScroll,传递给该处理函数的第 

二个参数的类型为CScrollBar*,我们需要使用强调类型转换将其转 

换为CSliderCtrl*,以便能正确的调用由CSliderCtrl对象所提供的 

各种成员函数。  



           表7。 1 应用程序VideoPlayer使用的菜单资源IDR_MENU  



           顶层菜单 

                  子菜单项             资源ID  

           项  



                  打开 (&O)          ID_FILEOPEN  



                  关闭(&C)           ID_FILECLOSE  

           文件 (&F)  

                  具有Separator样式的菜 

                  单分隔符               



                  退出 (&X)          ID_FILEEXIT  



                  开始 (&S)          ID_PLAYSTART  


…………………………………………………………Page 405……………………………………………………………

                           暂停 (&P)                   ID_PLAYPAUSE  

                播放 (&P)  

                           停止 (&T)                   ID_PLAYSTOP  



                           原始大小(&O)                  ID_VIDEO1X  

                视频 (&V)  

                           原始大小的2倍 (&T)              ID_VIDEO2X  



                           调节音量 (&V)                 ID_AUDEOVOLUME  

                音频 (&A)  

                           调节左右声道平衡 (&B)             ID_AUDEOBALANCE  



                帮助 (&H)  关于 视频播放器 (&A)               ID_HELPABOUT  



    



                                                         



                      图7。 5 用于调节音量的对话框:IDD_VOLUME  



以下是类CVolumeDlg的代码清单。为了节省篇幅和便于读者阅读和理 

解,我们删除了一些由AppWizard生成的代码和注释。  



// VolumeDlg。h : 头文件  



//  



class CActiveMovie;  



/////////////////////////////////////////////////////////////////////////////  



// CVolumeDlg 对话框  



class CVolumeDlg : public CDialog  



{  



// 构造  



public:  



void SetVolume(CActiveMovie* pAmovie);  



CVolumeDlg(CWnd* pParent = NULL); // 标准构造函数  



//{{AFX_DATA(CVolumeDlg)  


…………………………………………………………Page 406……………………………………………………………

enum { IDD = IDD_VOLUME };  



CSliderCtrl m_sld;  



//}}AFX_DATA  



    



// 重载  



//{{AFX_VIRTUAL(CVolumeDlg)  



protected:  



virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持  



//}}AFX_VIRTUAL  



// 实现  



protected:  



CActiveMovie* m_pAmovie;  



//{{AFX_MSG(CVolumeDlg)  



virtual BOOL OnInitDialog();  



afx_msg void OnHScroll(UINT nSBCode; UINT nPos; CScrollBar* pScrollBar);  



//}}AFX_MSG  



DECLARE_MESSAGE_MAP()  



};  



// VolumeDlg。cpp : 实现文件  



//  



#include 〃stdafx。h〃  



#include 〃VideoPlayer。h〃  



#include 〃VolumeDlg。h〃  



#include 〃activemovie。h〃  



/////////////////////////////////////////////////////////////////////////////  



// CVolumeDlg 对话框  


…………………………………………………………Page 407……………………………………………………………

CVolumeDlg::CVolumeDlg(CWnd* pParent /*=NULL*/)  



: CDialog(CVolumeDlg::IDD; pParent)  



{  



//{{AFX_DATA_INIT(CVolumeDlg)  



// 注意:ClassWizard 将在这里添加对成员的初始化代码  



//}}AFX_DATA_INIT  



}  



void CVolumeDlg::DoDataExchange(CDataExchange* pDX)  



{  



CDialog::DoDataExchange(pDX);  



//{{AFX_DATA_MAP(CVolumeDlg)  



DDX_Control(pDX; IDC_SLIDER1; m_sld);  



//}}AFX_DATA_MAP  



}  



BEGIN_MESSAGE_MAP(CVolumeDlg; CDialog)  



//{{AFX_MSG_MAP(CVolumeDlg)  



ON_WM_HSCROLL()  



//}}AFX_MSG_MAP  



END_MESSAGE_MAP()  



/////////////////////////////////////////////////////////////////////////////  



// CVolumeDlg 消息处理函数  



BOOL CVolumeDlg::OnInitDialog()   



{  



CDialog::OnInitDialog();  



// 设置音量滑块的最小值和最大值、标度和当前位置等  



m_sld。SetRange(…10000; 0);  


…………………………………………………………Page 408……………………………………………………………

m_sld。SetTicFreq(1000);  



m_sld。SetLineSize(200);  



m_sld。SetPageSize(1000);  



// 以 ActiveMovie 控件的当前音量作为音量滑块的当前位置  



m_sld。SetPos(m_pAmovie…》GetVolume());  



return TRUE;  



}  



// 提供给类外部的使用者的编程接口方法  



void CVolumeDlg::SetVolume(CActiveMovie * pAmovie)  



{  



m_pAmovie=pAmovie;  



// 如果未加载任何媒体文件,则音量调节不可用。ActiveMovie 控件的 CurrentState 属  



// 性返回控件的当前状态,…1 表示未加载任何文件,此时弹出出错提示信息  



if (m_pAmovie…》GetCurrentState()!=…1)  



{  



DoModal();  



}  



else  



{  



MessageBox(〃音频设备尚未加载,请先打开一个媒体文件。〃);  



}  



}  



// 在用户拖动或点击滑块控件时,将所作的改变立即作用于 ActiveMovie 控件  



void CVolumeDlg::OnHScroll(UINT nSBCode; UINT nPos; CScrollBar* pScrollBar)   



{  



CSliderCtrl *pSlider=(CSliderCtrl *)pScrollBar
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!