查看完整版本: 高手:当一进入一form中,就开始执行某函数,当用户有操作时,就不执行,是用nilEvent

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

yuanss 2003-9-29 22:39

已经搞定了!
求人不如求己!

lhxman 2005-12-6 20:12

不厚道,也不说说怎么解决滴:N:

页: [1]
查看完整版本: 高手:当一进入一form中,就开始执行某函数,当用户有操作时,就不执行,是用nilEvent