欢迎光临极品网,更多、更新的资源信息尽在Jpinw.Com!本站所有信息资源每日更新新的内容,请大家继续关注www.Jpinw.com!如果觉得本站还不错,对您有帮助,别忘了向您的朋友推荐本站!请记好本站网址:http://www.Jpinw.com,网站发展靠大家多多的支持!!!

极品网 极品课件 极品论文 极品文学 极品游戏 极品美容 极品手机资源 极品股票

#
免费资源: 免费域名 | 免费空间 | 免费推广 | 免费邮箱 | 免费硬盘 | 免费论坛 | 免费留言 | 免费统计 | 在线投稿 | 更多...
电脑学院: 操作系统 | 安全相关 | 网页设计 | 编程开发 | 建站经验 | 服务器类 | 黑客攻防 | 菜鸟入门 | 教你网赚 | 更多...
文章导航: 网赚学堂 | 网赚秘笈 | 网赚三维 | 网赚先锋 | 网赚资讯 | 感悟网赚 | 众生百态 | 经典美文 | 范文中心 | 更多...
图酷天下: 时事图酷 | 娱乐图酷 | 搞笑图酷 | 时尚图酷 | 体育图酷 | 另类经典 | 论文资源 | 课件下载 | 文学知识 | 更多...

您现在的位置: 极品网 >> 电脑学院 >> 编程开发 >> .NET >> 教程正文

VB.Net创建不规则窗体 Montaque(原作)            【字体:
VB.Net创建不规则窗体 Montaque(原作)
作者:佚名    教程来源:不详    点击数:    更新时间:2008-6-7    

 








VB.Net创建不规则窗体 Montaque(原作)。 VB.Net创建不规则窗体    Montaque(原作)  

一般说来,应用程序的窗体都是规则的,即是矩形窗体。有时候为了某种特殊的用途,我们希望改变应用程序窗体的形状,比如做个个性十足的mp3播放器,小时钟等等,这就需要 "定制"我们的应用程序。另外,特殊形状的窗体有时候也能吸引用户的注意力,使得他们格外注意你的程序。

在VB6里面,我们一般通过以下代码来创建不规则窗体。
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, _ ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, _ ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Private Sub Form_Activate()
Dim hndRgn As Long
hndRgn = CreateEllipticRgn(0, 0, 175, 175)
Call SetWindowRgn(Me.hWnd, hndRgn, True)
Call DeleteObject(hndRgn)
End Sub
首先用Win32 API CreateEllipticRgn创建一个圆形的区域,然后设置Form的区域为用户自定义的Region,这样我们就可以得到下面一个圆形的窗体

为了更美观一点,我们可以设Form的BorderStyle为None,然后自己画一个TitileBar,就可以做成比较活泼的应用程序。

VB.Net里面如何实现以上效果:
VB.NET是一中跨平台的语言,更好的利用了面向对象机制。它的面向对象能力扩展了语言本身的通路:一切都是对象。这意味着比在以前的VB版本里,你获得了更多的内在功能,你将很少被迫使用 Windows API。因此在VB.Net里面我们也只好放弃VB6里面利用API的观念,用VB.Net强大的对象机制来阐述以上话题。
在VB.Net里面,Form有一个Reigin属性,我们通过创建自定义的Reigin,然后指定Form的Reigin,就可以得到不规则的窗体。而且VB.Net里面的Reigin对象功能强大,远超过了之前VB的限制,因此我们可以作出很多漂亮的界面。

Regin对象
System.Drawing的一个对象,指示由矩形和由路径构成的图形形状的内部。因为区域的坐标是在全局坐标中指定的,所以可对它进行缩放。然而,在绘制表面上,它的内部取决于表示它的像素的大小和形状。应用程序可以使用若干区域来堆砌绘图操作的输出。窗口管理器则使用区域来定义窗口的绘制区域。这些区域被称为剪辑区域。应用程序还可以在命中检测的操作中使用区域,例如检查一个点或矩形是否与某个区域相交。应用程序可通过使用 Brush 对象来填充一个区域。
GraphicsPath表示一系列相互连接的直线和曲线,应用程序使用路径来绘制形状的轮廓、填充形状内部和创建剪辑区域。图形引擎在全局坐标空间中维护路径内的几何形状的坐标。路径可由任意数目的图形(子路径)组成。每一图形都是由一系列相互连接的直线和曲线或几何形状基元构成的。图形的起始点是相互连接的一系列直线和曲线中的第一点。终结点是该序列中的最后一点。几何形状基元的起始点和终结点都是由基元规范定义的。
下面我们看两个具体的实例
1.文字格式的窗体

在Form的Load事件加入以下代码:
Dim text_path As GraphicsPath
Dim text_region As Region
Me.BackColor = Color.Red
Me.Width = 600
' Create the text path.
text_path = New GraphicsPath( Drawing.Drawing2D.FillMode.Alternate)
text_path.AddString("CSDN", New FontFamily("Times New Roman"), FontStyle.Bold, 200,New Point(10, 10),
StringFormat.GenericDefault)
' Create a Region from the path.
text_region = New Region(text_path)
' Constrain the form to the region.
Me.Region = text_region

运行将将得到如下形状的窗体,记住按Shift+F5 中止程序。

2.椭圆形状的窗体:
同样加入以下代码,得到如下窗体

Me.Width = 300
Me.Height = 220
Me.BackColor = Color.RoyalBlue
Dim m_path As GraphicsPath
m_path = New GraphicsPath(FillMode.Winding)
m_path.AddEllipse(1, 1, 200, 200)
Dim m_region As New Region(m_path)
Me.Region = m_region

以上只是两个简单的例子,通过利用Region和GraphicsPath对象,你将得到更多有趣的效果。

 

教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关教程
    VB.NET与VB6的比较:被撤销的
    VB.NET与WEB服务器通讯
    vb.net执行外部程序的代码
    VB.NET中“数据窗体向导”所
    VB.net中HOOK的应用(CNET中文
    VB.net中HOOK的应用(二)
    VB.net中HOOK的应用(一)
    VB.NET中的对象序列
    VB.NET中的多线程
    VB.NET中的类
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    极品网
    | 设为首页 | 加入收藏 | 友情链接 | 版权声明 |
    极品网

    Copyright 2006 Jpinw.com 极品网

    备案号:浙ICP备07010375号

    极品网