中华网通行证
用户名 密码

使用Visual C#制作可伸缩个性化窗体(2)
中华网科技 http://tech.china.com 2005-06-15 11:45:51
进入BBS】【进入聊天室】【 推荐给朋友 】【浏览字号: 】【关闭窗口

  
定义一个资源管理器:

  private ResourceManager rm ;

  然后使用以下的方法在Form的构造函数中将图片取出来(资源文件名为Skin.resources):

  rm = new ResourceManager("SkinWindow.Skin", Assembly.GetExecutingAssembly());
  Bottom_Left = (Bitmap)rm.GetObject("Bottom_Left");
  …(其它的图片也按照此方法取)

  重载Form的OnPaint事件:

  Graphics g = e.Graphics;
  //手工画窗体的各个部?
  DrawMiddle_Left(e.Graphics);//画左边框
  DrawBottom_Middle(e.Graphics);//画下边框
  DrawMiddle_Right(e.Graphics);//画右边框
  DrawBottom_Left(e.Graphics);//画左下角
  DrawBottom_Right(e.Graphics);//画右下角
  DrawTop_Left(e.Graphics);//画标题栏左边
  DrawTop_Right(e.Graphics);//画标题栏右边
  DrawTop_Middle(e.Graphics);//画标题栏中间
  DrawSys_Button(e.Graphics);//画系统按纽

  以下是上述画皮肤方法的具体实现部分,我只举一个画左边框的代码示例,其它的部分请读者举一返三:
private void DrawMiddle_Left(Graphics g)
{
Brush brush = new TextureBrush(Middle_Left, new Rectangle(0, 0,
Middle_Left.Width, Middle_Left.Height));
g.FillRectangle(brush, 0, TITLE_WIDTH, Middle_Left.Width,
Height - Bottom_Middle.Height - TITLE_WIDTH);
}

  衣服穿上了,现在我们的程序就有了不同的外观:

12403812_2005061511461947797600.jpg


看上去已经很酷了,不过只是花架子,因为边框,标题栏,系统按纽都是我们自己画上去的假的边框,标题栏和系统按纽,所以这个窗体既不能移动也不能自由的放大缩小,点关闭都没用。以前我们写程序从来都不需要关心这个的,这些都是窗体的基本功能呀?没有从来都没有想到这个竟然还会是个问题吧?

  怎么办呢?答案就是我们自己来做,不过会比较麻烦,因为取消掉了边框,所以Windows不会帮你发出系统事件,你捕捉不到系统发生了什么事情的话,就没有办法写下响应代码,所以我们要自己检测鼠标的坐标,并根据鼠标的动作,自己来发出事件消息,然后进行响应。

  首先我们先定义出一些响应事件的代码,我定义了一个抽象的基类MouseAction,用来表示所有的鼠标事件,它有一个抽象方法Action:
public abstract class MouseAction
{
public abstract void Action(int ScreenX, int ScreenY, System.Windows.Forms.Form form);
}


  然后再来定义出它的各个派生类来表示出具体每个鼠标事件响应的代码。

  下面是一个向右拉伸窗口事件的代码响应:
public class MouseSizeRight : MouseAction
{
private int lx;
public MouseSizeRight(int LocationX)
{
lx = LocationX;
}

public override void Action(int ScreenX, int ScreenY, System.Windows.Forms.Form form)
{
form.Width = ScreenX - lx;
form.Invalidate();
}
}

首页 上页 | 1 | 2 | 3 | 4 | 下页 尾页  共 4

 

50款最具性价比数码相机/MP3推荐!
作者:微软/卢彦 来源: 

发表言论:
笔  名:
查看评论
﹣相关报道
C语言高效编程的的四招技巧 (2005-06-14 14:21:03)
用Visual C#打造个性化的IE浏览器 (2005-06-14 14:37:27)

﹣精彩回顾
·揭秘越南姑娘的“性契约”(组图)
·中国研制成功银河麒麟操作系统
·近处偷拍野狮性爱 野草丛中见柔情(图)
·难得一见“水下分娩”全程跟拍(组图)
·古代性器具及性惩罚工具(组图)
·揭密中外历史上乱伦的名人们(组图)
·探秘世界各地诡异的干尸新娘(组图)
·隋唐两个王朝的九大著名"绿帽子"(组图)
·另类的惨烈:螳螂血战壁虎谁更凶猛(图)
·一分钟平静死去 注射死刑全过程(图)

进入BBS】【进入聊天室】【 推荐给朋友 】【浏览字号: 】【关闭窗口


潮流·时尚
·市场上的天价手机全搜罗
·一周降幅最大手机导购
·FM调频收音功能手机选购
·索尼爱立信三新机曝光
·诺基亚N73音乐版精品赏
·热门便携笔记本搜索导购
·近期最新上市机型大盘点
·矩阵Matrix鼠标垫细评测
·19寸20寸22寸液晶该买谁
·近期几款热卖MP3大推荐
·四大即将退市经典MP3选购
·06年最火七大DC缺点曝光
·六百万像素超值机型推荐
·诺基亚推出随身小音箱
·LG直板巧克力KG99评测
·MOTO新机即将国内上市
·超低价蓝牙手机导购
·130万像素一样拍出好照片
·诺基亚两款蓝牙耳机新品
·索爱纯美折叠机Z558评测

软件下载
·豪杰大眼睛 V2.5
·Foxmail V6.5
·天网防火墙Athena
·极品五笔 V6.8
·PPS网络电视
·超级兔子魔法设置
中华网搜索
站内搜索
全网搜索




热门搜索
耳机 印刷 手机 拖鞋
减速机 钟表 成人用品
减肥 枸杞 T恤 升降机
心理 健康 彩票 招聘
礼品 旅游 猎头 培训

产品服务
·机会!机会不容错过
·中华商机,搜索创新
·准确快捷,搜你所搜
·¥来¥往,尽在中华邮
·中华搜索,贴心搜索




科技频道主编信箱