知识大全 使用 VC.net 轻松实现按钮控件自绘

Posted

篇首语:君不见长松卧壑困风霜,时来屹立扶明堂。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用 VC.net 轻松实现按钮控件自绘相关的知识,希望对你有一定的参考价值。

使用 VC.net 轻松实现按钮控件自绘  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  使用  轻松实现按钮控件自绘             

  下载源代码   在我的上一篇文章 VC NET简单实现GIF动画 中大家已经看到 框架的易用性了 这一回我想说说 控件的自绘 同样比 MFC 的控件自绘要轻松许多 我们就拿最常用的 Button 控件下手吧     启动 创建项目    添加Form _Load消息   添加控件 响应消息    添加代码    我们首先改变按钮的外观 把它变成圆的 然后利用鼠标消息改变按钮的状态 注意我这里偷了个懒 当按钮获得焦点时没有显示出选中框(就是大家选中一个东西时边缘上的那个虚线框) 大家如果觉得那个虚线很必要 可以自己在按钮获得焦点时画个虚线上去 也可以将按钮的普通状态保存成位图 然后在该位图上画好虚线并另存一下 在按钮获得焦点时显示那个有虚线的图 失去焦点则换回原图即可 十分简便  

  private: System::Void Form _Load(System::Object *  sender System::EventArgs *  e) //先创建路径 在路径中画个椭圆 然后用这个路径创建区域 最后把区域给按钮并设置按钮的范围 System::Drawing::Drawing D::GraphicsPath *path=new System::Drawing::Drawing D::GraphicsPath();//创建路径 path >AddEllipse(Rectangle( ));//在路径中画椭圆 System::Drawing::Region *reg=new System::Drawing::Region(path);//利用路径创建区域 button >Bounds=System::Drawing::Rectangle( );//设定按钮显示位置和最大响应范围 只能是矩形 button >Region=reg;//设定按钮的实际控制区域 可以是任意形状 //下面的内容就简单了 设置按钮在不同状态下的不同样式 没有响应焦点状态 就当作留给读者的作业吧^_^ private: System::Void button _MouseDown(System::Object *  sender System::Windows::Forms::MouseEventArgs *  e) button >Image=Image::FromFile("bitmap bmp"); private: System::Void button _MouseUp(System::Object *  sender System::Windows::Forms::MouseEventArgs *  e) button >BackColor=SystemColors::AppWorkspace; button >Image=NULL; private: System::Void button _MouseEnter(System::Object *  sender System::EventArgs *  e) button >BackColor=SystemColors::AppWorkspace; button >Image=NULL; private: System::Void button _MouseLeave(System::Object *  sender System::EventArgs *  e) button >BackColor=SystemColors::ActiveBorder; button >Image=NULL;

  好了 就这么简单 是不是比 MFC 的按钮自绘要容易的多呢?不过 MFC 中提供的 CBitmapButton 使用起来也同样简单 大家感兴趣的可以试一下 可是其它的 MFC 控件就没那么幸运了:( 而 控件的自绘则基本都如此篇所述 cha138/Article/program/c/201401/30251

相关参考

知识大全 如何轻松调整VB.NET控件

如何轻松调整VB.NET控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Anchor属性可以

知识大全 VC++.NET开发环境整合技巧

VC++.NET开发环境整合技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  主窗口内的每一个

知识大全 用VC.NET制作启动屏幕的新方法

用VC.NET制作启动屏幕的新方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在利用VC+编

知识大全 VC#.Net中浏览Crystal Report

VC#.Net中浏览CrystalReport  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 VC# .Net中使用Crystal Report(一)

VC#.Net中使用CrystalReport(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 VC# .Net中使用Crystal Report(二)

VC#.Net中使用CrystalReport(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 VC.NET索引对查询条件顺序的影响

VC.NET索引对查询条件顺序的影响  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  环境SqlS

知识大全 VC++.NET中使用GDI+创建特效字体

VC++.NET中使用GDI+创建特效字体  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!来自于微软

知识大全 VC.NET扩展Windows磁盘清理工具的功能

VC.NET扩展Windows磁盘清理工具的功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 基于VC.NET的GDI+编程之CImage

基于VC.NET的GDI+编程之CImage  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们