用VC 6.0写flash播放器——3、使用定时器

博客介绍了为对话框主窗口状态栏动态显示当前播放帧号的实现方法。通过在CSwfPlayerDlg类定义中声明定时器变量及相关方法,给出UseTimer1()和StopTimer1()代码,在OnInitDialog()初始化定时器,处理定时器消息WM_TIMER,实现动态显示帧号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

purpleendurer 原创

2005.11.15 第1

我们已经为作为主窗口的对话框加入了状态栏。为了在状态栏的第二部分动态地显示当前播放的是第几帧,我们使用了定时器。

实现方法如下:

1。在CSwfPlayerDlg类定义中加入定时器变量的声明,使用定时器的方法以及停止定时器的方法:

class CSwfPlayerDlg : public CDialog
{
....

protected:
HICON m_hIcon;
HWND m_hStatusWindow;
UINT m_Timer1; //定时器变量的声明
.....

private:
void UseTimer1(); //使用定时器
void StopTimer1(); //停止定时器
};

2。UseTimer1()的代码为:

void CSwfPlayerDlg::UseTimer1()//使用定时器
{
if (!m_Timer1)
{
SetTimer(m_Timer1, 500, NULL);
}
}

3。StopTimer1()的代码为:

void CSwfPlayerDlg::StopTimer1()//如果定时器已经启用,则停止它
{
if (m_Timer1)
{
KillTimer(m_Timer1);
m_Timer1 = 0;
}
}

4。在CSwfPlayerDlg的OnInitDialog()加初始化定时变量为0,表示未使用:

BOOL CSwfPlayerDlg::OnInitDialog()
{
CDialog::OnInitDialog();

..........

m_Timer1 = 0; //初始化定时器为未用

return TRUE; // return TRUE unless you set the focus to a control
}

5。对定时器消息WM_TIMER的处理

void CSwfPlayerDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default

CDialog::OnTimer(nIDEvent);

char buf[50];
char fmt2[] = {"当前为第%d帧"};

wsprintf(buf, fmt2, m_SwfBox.CurrentFrame());
::SendMessage(m_hStatusWindow, SB_SETTEXT, 1, (LPARAM)&buf);
}

这样在我们需要使用定时器时就调用UseTimer1(),要停止定时器时就调用StopTimer1()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值