yuanss 2003-9-27 18:43
高手:当一进入一form中,就开始执行某函数,当用户有操作时,就不执行,是用nilEvent
我想完成此功能,如何操作(我用POL)
看看我下面哪里不对,当我form被打开后
我什么也没操作,系统怎么不产生nilEvent
我的函数怎么没工作啊?
我的应用程序类名为CdbqbApp.
在dbqbApp.h中:
// Application class
class CdbqbApp :public CPalmStApp<CdbqbApp>
{
public:
// Overrides
virtual Err NormalLaunch();
virtual void EventLoop();
//virtual Boolean PreSystemEventHook(EventPtr pEvent);
Err InitInstance();
Err ExitInstance();
static CdbqbApp * GetInstance();
char* readData();
// Form map
BEGIN_FORM_MAP()
FORM_MAP_ENTRY(MainForm, CMainForm)
FORM_MAP_ENTRY(DetailForm,CDetailForm)
FORM_MAP_ENTRY(HelpForm,CHelpForm)
END_FORM_MAP()
};
dbqb.app中
//重载eventloop函数
void CdbqbApp::EventLoop()
{
if (m_wCommand == sysAppLaunchCmdNormalLaunch)
{
UInt16 error;
EventType event;
do
{
EvtGetEvent(&event,10);
if (! SysHandleEvent(&event))
if (! MenuHandleEvent(0, &event, &error))
if (! AppHandleEvent(&event))
FrmDispatchEvent(&event);
}
while (event.eType != appStopEvent);
}
}
下面重要的代码:
form类名:CDetailForm
DetailForm.h中:
class CDetailForm : public CForm
{
public:
// Command handlers
virtual Boolean FormHandleEvent(EventPtr pEvent); //form事件管理
protected:
POL::CField m_fldDescription;
};
DetailForm.cpp中:
Boolean CDetailForm::FormHandleEvent(EventPtr pEvent){
switch(pEvent->eType)
{
case nilEvent:
readData();//我想实现用户打开该form后,就一直读数据,readdata是我的读数据处理函数,我哪儿处理不对啊?还是我对nilevent理解有误?
break;
}
return true;
}
高手请帮忙,谢谢先!
yuanss 编辑于 2003-9-27 14:32:20