仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 527|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之C# winform 传神的仿Vista效果的按钮控...

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:18:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
它有很多缺点的,有兴趣可以到网上去搜索一下。于是微软有发明了“下一代”C++:C++/CLI语言,这个可以解决在.NETFramework中,托管C++产生的问题。在《程序员》杂志上,lippman和李建中合作连载介绍了C++/CLI语言。
  1. usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Drawing;usingSystem.Drawing.Imaging;usingSystem.Drawing.Drawing2D;usingSystem.Data;usingSystem.Text;usingSystem.Windows.Forms;namespaceMyControls{publicpartialclassCrystalButton:Button{privateenumMouseActionType{None,Hover,Click}privateMouseActionTypemouseAction;privateImageAttributesimgAttr=newImageAttributes();privateBitmapbuttonBitmap;privateRectanglebuttonBitmapRectangle;publicCrystalButton(){InitializeComponent();mouseAction=MouseActionType.None;this.SetStyle(ControlStyles.AllPaintingInWmPaintControlStyles.DoubleBufferControlStyles.UserPaint,true);//Thefollowingdefaultsarebettersuitedtodrawthetextoutlinethis.Font=newFont("ArialBlack",12,FontStyle.Bold);this.BackColor=Color.DarkTurquoise;this.Size=newSize(112,48);}privateGraphicsPathGetGraphicsPath(Rectanglerc,intr){intx=rc.X,y=rc.Y,w=rc.Width,h=rc.Height;GraphicsPathpath=newGraphicsPath();path.AddArc(x,y,r,r,180,90);//Upperleftcornerpath.AddArc(x+w-r,y,r,r,270,90);//Upperrightcornerpath.AddArc(x+w-r,y+h-r,r,r,0,90);//Lowerrightcornerpath.AddArc(x,y+h-r,r,r,90,90);//Lowerleftcornerpath.CloseFigure();returnpath;}protectedoverridevoidOnPaint(PaintEventArgse){Graphicsg=e.Graphics;//g.Clear(Color.White);g.Clear(SystemColors.ButtonFace);Colorclr=this.BackColor;intshadowOffset=8;intbtnOffset=0;switch(mouseAction){caseMouseActionType.Click:shadowOffset=4;clr=Color.LightGray;btnOffset=2;break;caseMouseActionType.Hover:clr=Color.LightGray;break;}g.SmoothingMode=SmoothingMode.AntiAlias;//////创立按钮自己的图形///Rectanglerc=newRectangle(btnOffset,btnOffset,this.ClientSize.Width-8-btnOffset,this.ClientSize.Height-8-btnOffset);GraphicsPathpath1=this.GetGraphicsPath(rc,20);LinearGradientBrushbr1=newLinearGradientBrush(newPoint(0,0),newPoint(0,rc.Height+6),clr,Color.White);//////创立按钮暗影///Rectanglerc2=rc;rc2.Offset(shadowOffset,shadowOffset);GraphicsPathpath2=this.GetGraphicsPath(rc2,20);PathGradientBrushbr2=newPathGradientBrush(path2);br2.CenterColor=Color.Black;br2.SurroundColors=newColor[]{SystemColors.ButtonFace};//为了更传神,我们将突变停止色彩设定为窗体远景色彩,能够依据窗口的远景色彩得当调剂//////创立按钮顶部红色突变///Rectanglerc3=rc;rc3.Inflate(-5,-5);rc3.Height=15;GraphicsPathpath3=GetGraphicsPath(rc3,20);LinearGradientBrushbr3=newLinearGradientBrush(rc3,Color.FromArgb(255,Color.White),Color.FromArgb(0,Color.White),LinearGradientMode.Vertical);//////绘制图形///g.FillPath(br2,path2);//绘制暗影g.FillPath(br1,path1);//绘制按钮g.FillPath(br3,path3);//绘制顶部红色泡泡//////设定内存位图工具,举行二级缓存画图操纵///buttonBitmapRectangle=newRectangle(rc.Location,rc.Size);buttonBitmap=newBitmap(buttonBitmapRectangle.Width,buttonBitmapRectangle.Height);Graphicsg_bmp=Graphics.FromImage(buttonBitmap);g_bmp.SmoothingMode=SmoothingMode.AntiAlias;g_bmp.FillPath(br1,path1);g_bmp.FillPath(br3,path3);//////将region赋值给buttonRegionrgn=newRegion(path1);rgn.Union(path2);this.Region=rgn;//////绘制按钮的文本///GraphicsPathpath4=newGraphicsPath();RectangleFpath1bounds=path1.GetBounds();RectanglercText=newRectangle((int)path1bounds.X+btnOffset,(int)path1bounds.Y+btnOffset,(int)path1bounds.Width,(int)path1bounds.Height);StringFormatstrformat=newStringFormat();strformat.Alignment=StringAlignment.Center;strformat.LineAlignment=StringAlignment.Center;path4.AddString(this.Text,this.Font.FontFamily,(int)this.Font.Style,this.Font.Size,rcText,strformat);PentxtPen=newPen(this.ForeColor,1);g.DrawPath(txtPen,path4);g_bmp.DrawPath(txtPen,path4);}protectedoverridevoidOnMouseDown(MouseEventArgse){if(e.Button==MouseButtons.Left){this.mouseAction=MouseActionType.Click;this.Invalidate();}base.OnMouseDown(e);}protectedoverridevoidOnMouseUp(MouseEventArgse){this.mouseAction=MouseActionType.Hover;this.Invalidate();base.OnMouseUp(e);}protectedoverridevoidOnMouseHover(EventArgse){this.mouseAction=MouseActionType.Hover;this.Invalidate();base.OnMouseHover(e);}protectedoverridevoidOnMouseEnter(EventArgse){this.mouseAction=MouseActionType.Hover;this.Invalidate();base.OnMouseEnter(e);}protectedoverridevoidOnMouseLeave(EventArgse){this.mouseAction=MouseActionType.None;this.Invalidate();base.OnMouseLeave(e);}}}
复制代码
完全不一样的。.net其实我也说不太清,.net可以把他理解为跟J2EE相对的工具。c++主要做系统相关的开发你要学.net的话就应该学C#。(其实微软在.NET平台上也考虑了给C++留一个地位。
老尸 该用户已被删除
沙发
发表于 2015-1-19 07:53:46 | 只看该作者
ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。
海妖 该用户已被删除
板凳
发表于 2015-1-25 18:07:12 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
山那边是海 该用户已被删除
地板
发表于 2015-2-3 12:38:52 | 只看该作者
ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-9 01:20:31 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
小妖女 该用户已被删除
6#
发表于 2015-2-26 16:59:12 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
再见西城 该用户已被删除
7#
发表于 2015-3-8 16:18:50 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
若相依 该用户已被删除
8#
发表于 2015-3-16 05:16:05 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
简单生活 该用户已被删除
9#
发表于 2015-3-22 20:12:46 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-10 05:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表