[求助]怎样创建不规则按钮? - 『 UCGUI源码学习研究 』 - 嵌入式操作系统及图形...

来源:百度文库 编辑:神马文学网 时间:2024/07/05 10:53:43
怎样创建不规则按钮?   Post By:2008-10-04 17:27:41 [只看该作者]

各位同志,我司要做个如下的界面,是经过美工美化过的,但ucgui创建的按钮都是方形的,我要如何才能创建出如下的按钮呢?
此主题相关图片如下:

  zhenfanhei 小大  2楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC

加好友 发短信
等级:注册用户 帖子:56 积分:847 威望:0 精华:0 注册:2005-12-19 10:22:01    Post By:2008-10-06 18:22:54 [只看该作者]

亲爱的版主大人,来帮我看看,给个思路看看哪!!!
  zhenfanhei 小大  3楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC

加好友 发短信
等级:注册用户 帖子:56 积分:847 威望:0 精华:0 注册:2005-12-19 10:22:01 [求助]实现的效果   Post By:2008-10-06 18:48:14 [只看该作者]

这是现在实现的效果,按钮是方的,感觉不好
此主题相关图片如下:

  zhenfanhei 小大  4楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC

加好友 发短信
等级:注册用户 帖子:56 积分:847 威望:0 精华:0 注册:2005-12-19 10:22:01    Post By:2008-10-07 12:28:15 [只看该作者]

版主,各位走过路过借过来过的朋友们,帮我想想办法看看,如果这个界面能够做出来,那ucgui就真的很不错了。
  zhenfanhei 小大  5楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC

加好友 发短信
等级:注册用户 帖子:56 积分:847 威望:0 精华:0 注册:2005-12-19 10:22:01    Post By:2008-10-15 12:30:27 [只看该作者]

如果把按钮周围的3D效果的框去掉就OK了,请教版主要如何做呢?
  zhenfanhei 小大  6楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC

加好友 发短信
等级:注册用户 帖子:56 积分:847 威望:0 精华:0 注册:2005-12-19 10:22:01    Post By:2008-10-15 12:57:52 [只看该作者]

把#define BUTTON_USE_3D 0就行了,但另外一个,在触摸屏按下选中了某个按钮的时候,怎样不让它的四周显示虚线框呢?
  zhenfanhei 小大  7楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC

加好友 发短信
等级:注册用户 帖子:56 积分:847 威望:0 精华:0 注册:2005-12-19 10:22:01    Post By:2008-10-31 16:15:34 [只看该作者]

让FOCUS不显示就行了,哎,ucgui资料太少了,版主现在又不知道在做什么,好久没现身了。商业版本的又太贵了,
  admin-ucgui 小大  8楼 博客 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC

加好友 发短信
等级:管理员 帖子:1059 积分:7951 威望:0 精华:3 注册:2003-12-30 16:34:32    Post By:2008-11-03 23:11:24 [只看该作者]

对于不规则窗体,ucgui 并不支持,我记得 ucgui 有一个示例代码,演示一个园形按钮,但其实只是自已在重载 WM_PAINT 消息时,将窗体背景绘制成与圆的,而且背景色与前景色一样,这样其实在点的时候,园形外的区域点击,也是点击在按钮上。

依我看,如果要实现你所的图中所描述的按钮,其实可以将图片按钮在绘制的时候,进行透明色的处理就可以了,将不须要显示的区域处理成透明色,在显示位图的时候,处理一下透明色即可。

按楼主图中来看,并没有处理好,对于图形化的按扭,应该处理的状态大约有:正常态、经过态、按下态,都处理成图片,就不会有楼主在 focus 状态下的问题了,楼主须要自己重载按扭重绘。


另外:如果要从根本上实现控件的不规则,会大大提高空间的占用,一般情况下对于不规则的处理,其实也是将其处理成小矩形的组合,沿着水平线,将区域划分成小矩形,最差的情况是每个矩形的高度为1,即直线,之后在进行绘制的时候,按此区域进行剪切,并按些区域进行剪切的判断。




[此贴子已经被作者于2008-11-03 23:18:37编辑过]

研究uC/GUI, 构思新的嵌入式GUI,有挑战性,爽.......

 

网名:ucgui

Google Wave: ucgui.com@gmail.com

QQ: 106719880

 

UCGUI研究学习群--12111753

 

UCGUI Wave, 查找 with:public UCGUI   legend516463920 小大  9楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC

加好友 发短信
等级:注册用户 帖子:2 积分:88 威望:0 精华:0 注册:2009-07-27 19:49:26 ucgui   Post By:2009-08-31 13:34:59 [只看该作者]

我也在做相同的东西 显示关闭样式 WIDGET_SetDefaultEffect_None(); 关闭Focus BUTTON_SetFocussable(hItem, 0); BUTTON_USE_3D对于这个 我还没找到相关函数 升到WIDGET级别的所以现在就这么点了
  legend516463920 小大  10楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC

加好友 发短信
等级:注册用户 帖子:2 积分:88 威望:0 精华:0 注册:2009-07-27 19:49:26    Post By:2009-08-31 13:40:10 [只看该作者]

我刚刚试过 这三个值改变后 完全可以了