CodeWarrior编了一段程序,为什么不出菜单呢?

yrj 2002-04-22 11:29:27
在资源中已经创建了一个菜单项,并且将菜单的ID,设置为MainFrom的Menu Bar了,而
如果是CodeWarrior程序自己生成的代码,是没有问题的,为什么?代码也在下面。
#include <palmos.h>
#include "HelloPalm_res.h"

static Boolean myFormHandleEvent(EventType* event)
{
if(event->eType==ctlSelectEvent)
SndPlaySystemSound(sndAlarm);
return false;

}

UInt32 PilotMain(UInt16 cmd,MemPtr cmdPBP,UInt16 launchFlags)
{
FormPtr form;
EventType event;
if(cmd !=sysAppLaunchCmdNormalLaunch)
return 0;
form=FrmInitForm(MainForm);
FrmSetEventHandler(form,myFormHandleEvent);
FrmSetActiveForm(form);
FrmDrawForm(form);

do
{
EvtGetEvent(&event,-1);
if(!SysHandleEvent(&event))
FrmDispatchEvent(&event);
}while(event.eType!=appStopEvent);
return 0;

}

一下是资源头文件
// Resource: tFRM 1000
#define MainForm 1000 //(Left Origin = 0, Top Origin = 0, Width = 160, Height = 160, Usable = 1, Modal = 0, Save Behind = 0, Help ID = 1002, Menu Bar ID = 1000, Default Button ID = 0)
#define MainUnnamed1001Button 1001 //(Left Origin = 52, Top Origin = 53, Width = 45, Height = 12, Usable = 1, Anchor Left = 1, Frame = 1, Non-bold Frame = 1, Font = Standard)
#define MainUnnamed1002Checkbox 1002 //(Left Origin = 51, Top Origin = 77, Width = 61, Height = 29, Usable = 1, Selected = 1, Group ID = 0, Font = Standard)
#define yrjFormGroupID 0


// Resource: MBAR 1000
#define MainFormMenuBar 1000

// Resource: MENU 1000
#define EditMenu 1000
#define EditOption 1000

// Resource: tSTR 1002
#define HelpID1002String
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yrj 2002-05-18
  • 打赏
  • 举报
回复
我知道问题了,应该先使用关于菜单消息的一个函数。
konglai 2002-04-25
  • 打赏
  • 举报
回复
首先,你在mainfrom 函数是怎么写的?如果你要在mainfrom里show出menu,则要在mainfrom里调出menu.以下是我写的部分代码(在static Boolean MainFormHandleEvent(EventPtr eventP)):
switch (eventP->eType)
{
case menuEvent:
EMainFormDoCommand(eventP->data.menu.itemID);
}
switch (command)
{
case OptionsAboutMobileMessenger:
MenuEraseStatus(0);
frmP = FrmInitForm (AboutOrgForm);
FrmDoDialog (frmP); // Display the About Box.
FrmDeleteForm (frmP);
handled = true;
break;
case OptionsPreferences:
MenuEraseStatus(0); // Clear the menu status from the display.
FrmGotoForm(PrefOrgForm);
handled = true;
break;

}


return handled;
}
cockhorse 2002-04-23
  • 打赏
  • 举报
回复
资源文件应该没有包含全部信息。CodeWarrior程序可能在其他地方也自动生成了信息。
我以前也没研究出什么结果,yrj老兄,你如果有什么进展,记得也同志我一声,帮帮小弟。

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧