OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4201|回复: 3

原子哥,最近一直在学STemwin,发过三四次求组贴了,实在是不好意思了,不过这个真搞了一天多了,没有搞定!!!!!!!

[复制链接]

8

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2015-9-25
在线时间
10 小时
发表于 2016-4-7 17:54:58 | 显示全部楼层 |阅读模式
1金钱
#include "ShowXBF.h"


WM_HWIN hDialog;

static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] =
{
        { FRAMEWIN_CreateIndirect, "notepad", ID_FRAMEWIN_0, 0, 0, 480, 320, 0, 0x0, 0 },
        { MENU_CreateIndirect, "Menu", ID_MENU_0, 0, 0, 470, 19, 0, 0x0, 0 },
};

//父菜单,,,子菜单,,,,字体显示,,,,ID号标志
static void _AddMenuItem(MENU_Handle hMenu,MENU_Handle hSubmenu, const char* pText, U16 Id, U16 Flags)
{
        MENU_ITEM_DATA Item;

        Item.pText = pText;
        Item.hSubmenu = hSubmenu;
        Item.Flags = Flags;
        Item.Id = Id;
        MENU_AddItem(hMenu, &Item);
}


static void _cbDialog(WM_MESSAGE * pMsg)
{
        MENU_ITEM_DATA   ItemData;
        WM_HWIN          hItem;
        int              NCode;
        int              Id;
       
        MENU_Handle subItem1;
       
        switch (pMsg->MsgId)
        {
        case WM_INIT_DIALOG:
                hItem = pMsg->hWin;
                FRAMEWIN_SetFont(hItem, &XBF12_Font);
                FRAMEWIN_SetTextColor(hItem, GUI_BLACK);
                FRAMEWIN_SetBarColor(hItem,1,0xF7D3A400);
                FRAMEWIN_SetMoveable(hItem,1);
                FRAMEWIN_SetText(hItem,"记事本");
                        //给框架窗口创建几个按钮
                FRAMEWIN_AddCloseButton(hItem,FRAMEWIN_BUTTON_RIGHT,0);
                FRAMEWIN_AddMaxButton(hItem,FRAMEWIN_BUTTON_RIGHT,2);
                FRAMEWIN_AddMinButton(hItem,FRAMEWIN_BUTTON_RIGHT,2);
                hItem = WM_GetDialogItem(pMsg->hWin, ID_MENU_0);
                MENU_SetTextColor(hItem,MENU_CI_ENABLED,GUI_GREEN);//已启用未选定的颜色
                MENU_SetTextColor(hItem,MENU_CI_SELECTED,GUI_RED);//已启用且已选定的颜色

                MENU_SetFont(hItem,&XBF12_Font);//设置自定义的XBF字体显示
       
       
       
                //创建子菜单
                subItem1=MENU_CreateEx(0, 0,0, 0, WM_UNATTACHED, WM_CF_SHOW, MENU_CF_VERTICAL, 0);
                _AddMenuItem(subItem1, 0, "新建", ID_MENU_01, 0);
                _AddMenuItem(subItem1, 0, "打开", ID_MENU_01, 0);
                _AddMenuItem(subItem1, 0, "关闭", ID_MENU_01, 0);
                _AddMenuItem(subItem1, 0, "保存", ID_MENU_01, 0);
       
       
                ItemData.Flags    = 0;
                ItemData.hSubmenu = subItem1;
                ItemData.Id       = 0;
                ItemData.pText    = "文件(F)";
                MENU_AddItem(hItem, &ItemData);
                ItemData.Flags    = 0;
                ItemData.hSubmenu = 0;
                ItemData.Id       = 1;
                ItemData.pText    = "编辑(E)";
                MENU_AddItem(hItem, &ItemData);
                ItemData.Flags    = 0;
                ItemData.hSubmenu = 0;
                ItemData.Id       = 2;
                ItemData.pText    = "视图(V)";
                MENU_AddItem(hItem, &ItemData);
                ItemData.Flags    = 0;
                ItemData.hSubmenu = 0;
                ItemData.Id       = 3;
                ItemData.pText    = "项目(P)";
                MENU_AddItem(hItem, &ItemData);
                ItemData.Flags    = 0;
                ItemData.hSubmenu = 0;
                ItemData.Id       = 4;
                ItemData.pText    = "帮助(H)";
                MENU_AddItem(hItem, &ItemData);
                break;
        case WM_NOTIFY_PARENT:
                Id    = WM_GetId(pMsg->hWinSrc);
                NCode = pMsg->Data.v;

                switch(Id)
                {
                        case ID_MENU_0:
                                switch(NCode)
                                {
                                case WM_NOTIFICATION_CLICKED:

                                        break;
                                case WM_NOTIFICATION_RELEASED:

                                        break;
                                case WM_NOTIFICATION_VALUE_CHANGED:

                                        break;
                                }
                                break;
                }
                break;
        default:
                WM_DefaultProc(pMsg);
                break;
        }
}


void Createnotepad(void)
{
        hDialog = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
        //GUI_Exec();
        while(1)
        {
                GUI_Delay(100);
        }
}



就是准备做一个类似于电脑上面的记事本,但是怎么做都做不出这个子菜单
QQ截图20160407175358.png
想做就这种,这个应该怎么实现!!!!!



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-4-7 18:25:57 | 显示全部楼层
额,emwin官方就有menu控件的例程
回复

使用道具 举报

8

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2015-9-25
在线时间
10 小时
 楼主| 发表于 2016-4-7 19:09:40 | 显示全部楼层
zuozhongkai 发表于 2016-4-7 18:25
额,emwin官方就有menu控件的例程

官方貌似我进不去,好像要翻墙,你们给的例程没有menu控件的,那个你能不能给我做一个菜单的例程,谢谢啦
回复

使用道具 举报

18

主题

422

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1139
金钱
1139
注册时间
2014-5-24
在线时间
116 小时
发表于 2016-4-8 09:59:12 | 显示全部楼层
问,楼主遇到了什么问题?Segger暂时不用梯子。
I See Fire.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.  只给方向,不妨碍思考
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-23 04:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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