设为首页 加入收藏

TOP

vc开发简单的flash播放器(二)
2013-07-22 18:15:47 来源: 作者: 【 】 浏览:267
Tags:开发 简单 flash 播放器

 

  5。添加Slider 控件的消息处理函数PreTranslateMessage()响应的消息NM_RELEASEDCAPTURE

  CSliderCtrl *m_pSlider=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1);

  int num=m_pSlider->GetPos();

  num=num*flash.get_TotalFrames()/100;

  flash.GotoFrame(num);

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

  将下面代码添加到,Dialog类的OnInitDialog()函数中

  CSliderCtrl *m_pSlider=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1);

  m_pSlider->SetRange(0,100);  //设定Slider的活动范围是0~100

  6。添加Dialog类的OnTimer()函数响应消息WM_TIMER

  在OnTimer()函数中添加代码:

  CSliderCtrl *m_pSlider=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1);

  m_pSlider->SetPos(flash.CurrentFrame()*100/flash.get_TotalFrames());

  7。在Dialog类的DestroyWindow()函数中添加代码:

  if(timerflag)

  KillTimer(m_nTimer);

  8。“全屏”按钮代码:

  if(!screenflag && playflag)

  {

  GetWindowPlacement(&m_WndPos);

  flash.GetWindowPlacement(&m_FlashPos);

  flash.GetWindowRect(flashrect);

  CSliderCtrl *m_pSlider=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1);

  m_pSlider->ShowWindow(SW_HIDE );

  HWND hwnd=this->GetSafeHwnd();

  LONG style=GetWindowLongPtr(hwnd,GWL_STYLE);

  SetWindowLongPtr(hwnd,GWL_STYLE,style-WS_CAPTION );

  CClientDC dc(this);

  this->MoveWindow(0,0,dc.GetDeviceCaps(HORZRES),dc.GetDeviceCaps(VERTRES));

  flash.SetWindowPos(&CWnd::wndTop ,0,0,dc.GetDeviceCaps(HORZRES),dc.GetDeviceCaps(VERTRES),SWP_SHOWWINDOW);

  screenflag=TRUE;////////////////////

  }

  9。响应按键ESC消息,取消全屏。

  重载对话框的PreTranslateMessage()函数,在函数中添加如下代码:

  if(pMsg->message == WM_KEYDOWN)

  {

  if(pMsg->wParam==VK_ESCAPE)

  {

  if(screenflag)

  {

  HWND hwnd=this->GetSafeHwnd();

  LONG style=GetWindowLongPtr(hwnd,GWL_STYLE);

  SetWindowLongPtr(hwnd,GWL_STYLE,style+WS_CAPTION );

  ShowWindow(SW_HIDE);

  SetWindowPlacement(&m_WndPos);

  flash.MoveWindow(flashrect.left,flashrect.top,flashrect.Width(),flashrect.Height(),1);

  flash.SetWindowPlacement(&m_FlashPos);

  screenflag=FALSE;

  CSliderCtrl *m_pSlider=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1);

  m_pSlider->ShowWindow(SW_SHOW );

  }

  }

  }

  全屏和取消全屏的代码,是俺自己拼凑所得,充其量只是个模拟效果,而且还是个模拟的不好的效果,如果有高手见到,希望能够博您一笑。另外,在笑过之后还请您不吝赐教。

      

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇VC各种链接错的解决办法 下一篇VC解决绘图闪烁问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: