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

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

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






ON_MAND(ID_AUDEOVOLUMN; OnAudeoVolumn)  



ON_MAND(ID_AUDEOBALANCE; OnAudeoBalance)  



ON_MAND(ID_VIDEO1X; OnVideo1x)  



ON_MAND(ID_VIDEO2X; OnVideo2x)  



ON_MAND(ID_PLAYPAUSE; OnPlayPause)  



ON_MAND(ID_HELPABOUT; OnHelpAbout)  


…………………………………………………………Page 417……………………………………………………………

//}}AFX_MSG_MAP  



END_MESSAGE_MAP()  



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



// CVideoPlayerDlg 消息处理函数  



BOOL CVideoPlayerDlg::OnInitDialog()  



{  



CDialog::OnInitDialog();  



// 为对话框设置图标。对于不使用对话框作为主窗口的应用程序,这一步骤由框架自动完成  



SetIcon(m_hIcon; TRUE); // 设置大图标  



SetIcon(m_hIcon; FALSE); // 设置小图标  



// 设置 ActiveMovie 控件的初始文件为空  



m_amovie。SetFileName(〃〃);  



// 改变窗口的大小以适应 ActiveMovie 控件的大小  



MoveMovieWindow();  



return TRUE;  



}  



// 如果向对话框中添加到最小化按钮,您将需要编写代码来绘制相应的图标。对于使用了  



// 文档/视结构的应用程序,这一操作由框架自动完成  



void CVideoPlayerDlg::OnPaint()   



{  



if (IsIconic())  



{  



CPaintDC dc(this); // 绘制设备上下文  



SendMessage(WM_ICONERASEBKGND; (WPARAM) dc。GetSafeHdc(); 0);  



// 在客户区矩形内居中图标  



int cxIcon = GetSystemMetrics(SM_CXICON);  


…………………………………………………………Page 418……………………………………………………………

int cyIcon = GetSystemMetrics(SM_CYICON);  



CRect rect;  



GetClientRect(&rect);  



int x = (rect。Width() cxIcon + 1) / 2;  



int y = (rect。Height() cyIcon + 1) / 2;  



// 绘制图标  



dc。DrawIcon(x; y; m_hIcon);  



}  



else  



{  



CDialog::OnPaint();  



}  



}  



// 当用户拖动最小化了的窗口时,系统调用该函数来获得显示使用的光标  



HCURSOR CVideoPlayerDlg::OnQueryDragIcon()  



{  



return (HCURSOR) m_hIcon;  



}  



// 打开媒体文件  



void CVideoPlayerDlg::OnFileOpen()   



{  



CFileDialog dlg(TRUE; NULL; NULL; 0; 〃所有文件 |*。*〃; NULL);  



if (dlg。DoModal()==IDOK)  



{  



m_amovie。SetFileName(dlg。GetPathName());  



}  


…………………………………………………………Page 419……………………………………………………………

}  



// ActiveMovie 控件 IDC_AMOVIE 的消息映射  



BEGIN_EVENTSINK_MAP(CVideoPlayerDlg; CDialog)  



//{{AFX_EVENTSINK_MAP(CVideoPlayerDlg)  



ON_EVENT(CVideoPlayerDlg; IDC_AMOVIE; 50 /* Openplete */;   



OnOpenpleteAmovie; VTS_NONE)  



ON_EVENT(CVideoPlayerDlg; IDC_AMOVIE; …609 /* ReadyStateChange */;   



OnReadyStateChangeAmovie; VTS_I4)  



ON_EVENT(CVideoPlayerDlg; IDC_AMOVIE; 1 /* StateChange */;   



OnStateChangeAmovie; VTS_I4 VTS_I4)  



ON_EVENT(CVideoPlayerDlg; IDC_AMOVIE; 51 /* DisplayModeChange */;   



OnDisplayModeChangeAmovie; VTS_NONE)  



ON_EVENT(CVideoPlayerDlg; IDC_AMOVIE; 999 /* Error */;   



OnErrorAmovie; VTS_I2 VTS_BSTR VTS_BSTR VTS_PBOOL)  



//}}AFX_EVENTSINK_MAP  



END_EVENTSINK_MAP()  



// 当 ActiveMovie 控件完成媒体文件的加载时自动播放该文件  



void CVideoPlayerDlg::OnOpenpleteAmovie()   



{  



m_amovie。Run();   



}  



// 当 ActiveMovie 控件的准备状态发生改变时,在需要的情况下改变对话框的大小以适应  



// ActiveMovie 控件的大小  



void CVideoPlayerDlg::OnReadyStateChangeAmovie(long ReadyState)   



{  



MoveMovieWindow();  


…………………………………………………………Page 420……………………………………………………………

}  



// 关闭媒体文件,即简单的将 ActiveMovie 控件的 FileName 属性值设置为空  



void CVideoPlayerDlg::OnFileClose()   



{  



m_amovie。SetFileName(〃〃);  



}  



// 当 ActiveMovie 控件的状态发生改变时,在需要的情况下改变对话框的大小以适应  



// ActiveMovie 控件的大小  



void CVideoPlayerDlg::OnStateChangeAmovie(long oldState; long newState)   



{  



MoveMovieWindow();   



}  



// 改变对话框在大小以适应 ActiveMovie 控件的大小  



void CVideoPlayerDlg::MoveMovieWindow()  



{  



CRect rc1; rc2; rc3;  



// 得到 ActiveMovie 控件的大小  



m_amovie。GetWindowRect(rc1);  



// 保证对话框客户区的宽不小于 300 象素,高不小于 225 象素  



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