搜索
bottom↓
回复: 16

想用STemwin来实现下图的菜单,一点头绪都没有,那位能提...

[复制链接]

出0入4汤圆

发表于 2016-3-10 09:52:23 | 显示全部楼层 |阅读模式
想用STemwin来实现下图的菜单,一点头绪都没有,那位能提个思路呢?


本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2016-3-10 09:55:27 | 显示全部楼层
贴图贴图贴图。。。

出0入0汤圆

发表于 2016-3-10 09:59:33 | 显示全部楼层
你这个图要实现那部分?

出0入4汤圆

 楼主| 发表于 2016-3-10 10:03:46 | 显示全部楼层
这个好像不是贴图的

出0入0汤圆

发表于 2016-3-10 10:09:05 | 显示全部楼层
参看官方模拟器里面的smartphone例子即可,使用的重定义按钮的回调函数实现的。

另外从emWin5.32版本就开始加入这种swipelist控件了,不过现在的STemWin还是5.28版本

出0入8汤圆

发表于 2016-3-10 10:09:47 | 显示全部楼层
一列按钮,每个按钮都设置自定义皮肤绘制函数
BUTTON_SetSkin(hBtns[i], _BtnDrawItemFunc);

以下代码是摘出来的,仅供参考下绘制流程啊~~
static int  _BtnDrawItemFunc(const WIDGET_ITEM_DRAW_INFO * pDrawItemInfo)
{
        GUI_COLOR bordColor, bkColor, txtColor;
        const GUI_BITMAP* pBmp;
        char txtBuf[21];
        int32_t offsetX = 0,offsetY = 0;

        switch (pDrawItemInfo->Cmd)
        {
        case WIDGET_ITEM_DRAW_BACKGROUND:
                switch(pDrawItemInfo->ItemIndex)
                {
                case BUTTON_SKINFLEX_PI_ENABLED:
                        bordColor = NIC_BTN_SKIN_ENABLE_COLOR_E;
                        bkColor = BUTTON_GetBkColor(pDrawItemInfo->hWin, BUTTON_CI_UNPRESSED);
                        txtColor = BUTTON_GetTextColor(pDrawItemInfo->hWin, BUTTON_CI_UNPRESSED);
                        pBmp = BUTTON_GetBitmap(pDrawItemInfo->hWin, BUTTON_BI_UNPRESSED);
                        break;
                case BUTTON_SKINFLEX_PI_PRESSED:
                        bordColor = NIC_BTN_SKIN_PRESSED_COLOR_E;
                        bkColor = BUTTON_GetBkColor(pDrawItemInfo->hWin, BUTTON_CI_PRESSED);
                        txtColor = BUTTON_GetTextColor(pDrawItemInfo->hWin, BUTTON_CI_PRESSED);
                        pBmp = BUTTON_GetBitmap(pDrawItemInfo->hWin, BUTTON_BI_PRESSED);
                        offsetX = 2;
                        offsetY = 2;
                        break;
                }

                /* 背景 */
                GUI_SetColor(bkColor);
                GUI_FillRect(pDrawItemInfo->x0+1, pDrawItemInfo->y0+1, pDrawItemInfo->x1-1, pDrawItemInfo->y1-1);

                /* 图标 */
                GUI_DrawBitmap(pBmp, NIC_MENU_BTN_BMP_X+offsetX, NIC_MENU_BTN_BMP_Y+offsetY);

                /* 文本 */
                BUTTON_GetText(pDrawItemInfo->hWin,txtBuf,64);
                GUI_SetFont(&GUI_FontHZ16);
                GUI_SetColor(txtColor);
                GUI_SetBkColor(bkColor);
                GUI_DispStringInRect(txtBuf, (GUI_RECT*)(&NIC_MENU_TXT_RECT), GUI_TA_HCENTER|GUI_TA_VCENTER);
                break;
        case WIDGET_ITEM_DRAW_BITMAP:
                break;
        case WIDGET_ITEM_DRAW_TEXT:
                break;
        default:
                // Use the default skinning routine for processing all other commands
                return BUTTON_DrawSkinFlex(pDrawItemInfo);
        }

        return 0;
}

出0入4汤圆

 楼主| 发表于 2016-3-10 10:16:24 | 显示全部楼层
谢谢各位了,就是“smartphone例子”那种效果。

出0入8汤圆

发表于 2016-3-10 10:18:12 | 显示全部楼层
salon 发表于 2016-3-10 10:16
谢谢各位了,就是“smartphone例子”那种效果。

有专门的smartphone控件吗?

出0入4汤圆

 楼主| 发表于 2016-3-10 10:20:21 | 显示全部楼层
nic_911 发表于 2016-3-10 10:18
有专门的smartphone控件吗?


正在看代码?好像不是专门的控件。

出0入0汤圆

发表于 2016-3-10 10:33:49 来自手机 | 显示全部楼层
楼主是搞菲亚特的?

出0入4汤圆

 楼主| 发表于 2016-3-10 20:32:39 | 显示全部楼层
dcl_yufeimen 发表于 2016-3-10 10:33
楼主是搞菲亚特的?

出0入4汤圆

 楼主| 发表于 2016-3-10 22:39:44 | 显示全部楼层
nic_911 发表于 2016-3-10 10:18
有专门的smartphone控件吗?

是用 BUTTON 做的。

出0入0汤圆

发表于 2016-3-27 22:35:36 | 显示全部楼层
我也考虑用这种效果。

出0入0汤圆

发表于 2016-10-4 10:17:03 | 显示全部楼层
楼主现在做得怎样了?也想学一学。

出0入4汤圆

 楼主| 发表于 2016-10-4 16:14:40 | 显示全部楼层
zaldy30 发表于 2016-10-4 10:17
楼主现在做得怎样了?也想学一学。

我是在“smartphone例子”上改的

出0入0汤圆

发表于 2016-10-4 17:28:11 | 显示全部楼层
salon 发表于 2016-10-4 16:14
我是在“smartphone例子”上改的

好的,我找找,谢谢!

出0入0汤圆

发表于 2018-10-22 16:02:54 | 显示全部楼层
salon 发表于 2016-10-4 16:14
我是在“smartphone例子”上改的

你好,smartphone 这个例子在哪里目录里面啊,我貌似没有找到 ???
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-18 20:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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