初级会员

- 积分
- 76
- 金钱
- 76
- 注册时间
- 2015-9-25
- 在线时间
- 10 小时
|
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);
}
}
就是准备做一个类似于电脑上面的记事本,但是怎么做都做不出这个子菜单
想做就这种,这个应该怎么实现!!!!!
|
|