C#屏幕绘制程序

前几天处理一个比较有意思的需求,客户要求在屏幕滚动显示一些提示信息,而同时还要考虑到客户做交易时的屏幕刷新问题,屏幕刷新后滚动信息不能重新开始,而是继续刷新前的操作。
这样一来就无法使用javascript的走马灯【marquee】效果了。为了不对已有程序做太大改动,无奈之下只好写一外挂,专门做滚动字幕显示。现将源码公开,以方便有相同需要的朋友。
该程序设计有几点需要注意:
(1)创建Form时应该override CreateParams CreateParams

ContractedBlock.gif ExpandedBlockStart.gif View Code
 
   
protected override CreateParams CreateParams
{
get
{
CreateParams cp
= base .CreateParams;
cp.ExStyle
|= 0x8000000 ; // 使其在创建时处于非激活状态
return cp;
}
}

(2)创建时设置Form属性
       
ContractedBlock.gif ExpandedBlockStart.gif View Code
 
   
// 设置窗体属性
this .BackColor = Color.Fuchsia;
this .TransparencyKey = Color.Fuchsia;
this .TopMost = true ; // 置顶
// this.WindowState = FormWindowState.Maximized;
this .ShowInTaskbar = false ; // 取消在任务栏中显示
this .FormBorderStyle = FormBorderStyle.None; // 取消标题栏、边框等
// this.StartPosition = FormStartPosition.CenterScreen; // 窗体位置
(3)要考虑到多屏幕的问题
  
ContractedBlock.gif ExpandedBlockStart.gif View Code
 
   
/// <summary>
/// 在主屏显示
/// </summary>
private void PositionOnSecondaryScreen()
{
Screen secondaryScreen
= null ;
if (Screen.AllScreens.Length == 1 )
{
secondaryScreen
= Screen.PrimaryScreen;
}
else
{

foreach (Screen screen in Screen.AllScreens)
{
if (screen.Primary == false )
{
secondaryScreen
= screen;
break ;
}
}
}

this .Location = secondaryScreen.WorkingArea.Location;
this .Size = secondaryScreen.WorkingArea.Size;

}

屏幕绘制字符其实很简单,就是在指定位置DrawString,但在绘制之前最好能MeasureString来测算要绘制的字符长度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值