用VC 6.0写flash播放器——5、全屏播放

简介: 用VC 6.0写flash播放器——5、全屏播放

为了让flash可以全屏显示,我们需要为播放窗口添加一个全屏播放按钮,同时为作为flash播放窗口的对话框添加一个BOOL型的成员变量m_IsFullScr,来记录是否为全屏状态。由于flash控件本身具有显示在其它控件前面的特性,因此我们只需要把flash控件大小设置为全屏,而不需要将其它的控件设置成隐藏。不过,由于程序使用定时器动态显示当前帧数的关系,因此当前帧数的信息还是会显示出来,影响flash的全屏播放的效果,所以我们要隐藏状态栏,或者Kill掉定时器。

当用户点击全屏播放按钮时的处理代码如下:

void CSwfPlayerDlg::OnbtnFullScr()//全屏播放
{
 // TODO: Add your control notification handler code here
 if(false==m_IsFullScr)
 {
  GetWindowPlacement(&m_DefDlgPos); 
  ::ShowWindow(m_hStatusWindow, SW_HIDE);//隐藏状态栏
  SetWindowLong(m_hDlg, GWL_STYLE, GetWindowLong(m_hDlg, GWL_STYLE) - WS_CAPTION);//去掉标题栏
  CClientDC dc(this);
  int horzres = dc.GetDeviceCaps(HORZRES);
  int vertres = dc.GetDeviceCaps(VERTRES);
  this->MoveWindow(0, 0, horzres, vertres);
  m_SwfBox.SetWindowPos(&CWnd::wndTop, 0, 0, horzres, vertres, SWP_SHOWWINDOW);//让flash全屏显示
  m_IsFullScr = true;
 } 
}

当播放窗口全屏显示时,为了能通过按下Esc键来退出全屏状态,我们为作为flash播放窗口的对话框添加一个PreTranslateMessage方法,代码如下:

BOOL CSwfPlayerDlg::PreTranslateMessage(MSG* pMsg) 
{
 if (pMsg->message == WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)//如果按下Esc键
 {
  if (true==m_IsFullScr)//是全屏显示
  {
   SetWindowLong(m_hDlg, GWL_STYLE, GetWindowLong(m_hDlg, GWL_STYLE) + WS_CAPTION);//恢复标题栏
   ShowWindow(SW_HIDE);
   SetWindowPlacement(&m_DefDlgPos);
   m_IsFullScr = false;
   ::ShowWindow(m_hStatusWindow, SW_SHOW);//显示状态栏
  }
  return true;//防止按Esc键关闭对话框
 }
 return CDialog::PreTranslateMessage(pMsg);
}
相关文章
|
自然语言处理 Java API
云效问题之登录仓库提示404如何解决
云效仓库是阿里云提供的代码托管和版本控制服务,支持Git等多种版本管理工具;本合集聚焦于云效仓库的使用技巧、团队协作流程以及常见问题解答,旨在帮助开发者更高效地进行代码管理和协作开发。
531 0
|
数据可视化 Python
Python版 孤勇者 | 画图+演奏+音乐可视化
另外还有个叫做 pgzero 的游戏开发库,里面有一个可以播放音符的方法。
Python版 孤勇者 | 画图+演奏+音乐可视化
Qt在线安装时出现网络错误的解决办法(Windows)
Qt在线安装时出现网络错误的解决办法(Windows)
|
安全 Go
第九章 CSP 架构 - CSP 应用程序设置
第九章 CSP 架构 - CSP 应用程序设置
466 0
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
604 214
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
843 61