/*==========================
调用flash
实现窗体内某控件的全屏显示
Esc退出全屏
==========================*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsFLASHFull
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Rectangle rect = new Rectangle();
string path = System.Windows.Forms.Application.StartupPath + "\\Flash\\" + "sf" + ".swf";
private void Form1_Load(object sender, EventArgs e)
{
KeyPreview = true;//优先获得键盘事件的激活权
axShockwaveFlash1.Movie = path;
axShockwaveFlash1.Play();
//实现窗体内某控件的全屏显示
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
Rectangle ret = Screen.GetWorkingArea(this);
this.axShockwaveFlash1.ClientSize = new Size(ret.Width, ret.Height);
this.axShockwaveFlash1.Dock = DockStyle.Fill;
this.axShockwaveFlash1.BringToFront();
}
//按Esc键退出全屏//重写ProcessCmdKey的方法
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData){
int WM_KEYDOWN = 256;
int WM_SYSKEYDOWN = 260;
if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN){
switch (keyData)
{
case Keys.Escape:
this.axShockwaveFlash1.Dock = DockStyle.None;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
this.WindowState = FormWindowState.Normal;
this.ClientSize = new Size(300,300);
this.axShockwaveFlash1.Location = new Point(13,13);//初始位置
this.axShockwaveFlash1.ClientSize = new Size(192,192);//即是控件的原始尺寸
//this.Close();//esc关闭窗体
break;
}
}
return false;
}
}
}串口通讯系列四-调用flash
最新推荐文章于 2026-03-01 18:00:00 发布
这篇博客介绍了如何在C#环境下,利用窗体和 Shockwave Flash 控件实现串口通讯中Flash内容的全屏显示,并通过Esc键退出全屏模式。代码示例详细展示了设置窗体无边框、最大化、调整Flash控件大小以及捕获Esc键退出全屏的逻辑。

6439

被折叠的 条评论
为什么被折叠?



