在WinCE5.0下实现透明背景按钮(.net C#)

时间:2015-08-06 05:10:07
【文件属性】:

文件名称:在WinCE5.0下实现透明背景按钮(.net C#)

文件大小:759KB

文件格式:RAR

更新时间:2015-08-06 05:10:07

WinCE5.0 透明背景按钮

WinCE5.0下实现透明背景按钮(.net C#) 需要在wince5.0下实现图形化界面,用于功能导航,用过GPS导航就知道了,类似的界面。众所周知gif,PNG等图片,都是可以实现透明背景的,在win下这应该不是个问题。但在ce5.0下,无论是透明背景的ICON、PNG、GIF都无法简单实现透明背景,alpha通道会丢失。网上搜索了些资料,当然也有办法解决,大家可以查一下,但性能较低。最终按微软SDK自带的一个计算器的源码思路解决了透明背景按钮问题。 要点: 1.如何画透明背景的BMP 2.如何画按钮并实现事件 思路及解决: 1.画按钮的思路:   ImageAttributes imageAttr=new ImageAttributes();   imageAttr.SetColorKey(Color.FromArgb(255, 0, 255),Color.FromArgb(255, 0, 255));   然后使用Graphics.DrawImage(,,,,,imageAttr)函数在指定的位置上画出透明的图片。   2. 事件驱动的思路: 事先定义好各按钮的指令   public enum Command { cmd1 = 0,//无操作 cmd2,//第一项操作 cmd3,//第二项操作 cmd4,//可自己扩展 max } 在创建按钮的同时明确以下几个参数 容器控件、资源存放的目录、X坐标、Y坐标、背景图片、按钮的标题、非激活时的文字颜色、激活时的文字颜色、触发的指令。创建窗口,针对窗体事件做如下定义 •在Form_Load时生成按钮, •在Form_OnPaint时使用按钮自身的Render函数根据自己状态(有没有被点中)重画, •在MouseDown时判断点击位置是否在某个按钮的内部,如果是在它内部就改变它的状态,设置状态的同时调用窗口控件的Graphics局部重画这个按钮,     •在Form_MouseUp时判断现在的位置是不是在按钮内部,如果按下了,抬起时又移出了范围则不处理。如果按下与抬起都是在同一个按钮的边界内部则执行这个按钮所设置的指令。 以下是我使用的资源,将作为按钮的图片需要透明的部分设置成RGB(255,0,255),那种非常刺眼的颜色。以下图片可以另存为BMP使用,设置的分辨是800*600的CE设备。


【文件预览】:
透明按钮
----whiteButton()
--------whiteButton.sln(1KB)
--------whiteButton.suo(17KB)
--------whiteButton()
----image()
--------button.bmp(11KB)
--------button_.bmp(11KB)
--------mainbg.bmp(420KB)
--------title.bmp(51KB)
--------Thumbs.db(17KB)

网友评论

  • 正在使用wince的开发,参考参考
  • 不知道咋用
  • 很好的资源,参考了,能实现目标,不过也有很大的局限性
  • 不错,可以作为参考使用
  • 用处不是很大,可以参考。图片的背景颜色控制效果不明显
  • 一般,可以用!
  • 可以参考,用了图片,,可以实现
  • 可以参考,分是多了些,改变某些内容,可以实现
  • 还可以,效果不错。
  • 非常有用,思路开启哦
  • 对我没起到什么大的作用,但是可以借鉴
  • 很不错,学习了
  • 用处不是很大,可以参考。图片的背景颜色控制效果不明显。
  • 还不错....可以学习下.....
  • 用处不是很大
  • 这个可以,我直接用到项目里了
  • 不是我要的效果,不过还可以,值得学习
  • 可以参考,分是多了些
  • 没有编译通过
  • 可以参考,谢谢分享
  • 可以参考,比以前看到的都不错。
  • 不错。成功的应用到自己的平台中了。不过可以用pcictureBox 代替 button
  • 分是多了些,不过看在你怎么认真和辛苦的分享还是值的的,谢谢
  • 效果可以就是分多些!
  • 可以参考,把我以前关于引用图片地址的问题也解决了,谢谢!
  • 分是多了些,不过看在你怎么认真和辛苦的分享还是值的的,谢谢