WEB开发网
开发学院手机开发Symbian 开发 Symbian上往UI框架应用程序发送消息 阅读

Symbian上往UI框架应用程序发送消息

 2010-05-31 20:11:00 来源:WEB开发网   
核心提示:}第二种方案:由于TApaTask::SendMessage()发送的消息可以被CEikAppUI的成员函数ProcessMessageL()拦截并处理,不过必须在没有重载HandleMessageL()函数的前提下,Symbian上往UI框架应用程序发送消息(2),而且函数ProcessMessageL()只负责拦截

}

第二种方案:由于TApaTask::SendMessage()发送的消息可以被CEikAppUI的成员函数ProcessMessageL()拦截并处理,不过必须在没有重载HandleMessageL()函数的前提下,而且函数ProcessMessageL()只负责拦截消息标识为KUidApaMessageSwitchOpenFileValue和KUidApaMessageSwitchCreateFileValue的这两个消息,其它标识值的消息不会被传到ProcessMessageL()中,所以这种方案个人觉得很受限制,不自由,还是采用第一种方案好,具体代码代码如下:

//发送:

TUid uid( TUid::Uid( 0x0116C9D3 ) );

TApaTaskList taskList( iCoeEnv->WsSession() );

TApaTask task = taskList.FindApp(uid );

if( task.Exists() ) //判断任务是否正在运行

{

LIT8( KTestMsg, "CustomMessage" );

//这里的Uid不能使用自定义的,而且只有系统提供的两个

TUid msgUid( TUid::Uid(KUidApaMessageSwitchCreateFileValue) );

task.SendMessage( uid, KTestMsg );

}

//接收:

void CXXXAppUi::ProcessMessageL(TUid aUid,const TDesC8& aParams)

{

RFileLogger iLog;

iLog.Connect();

iLog.CreateLog(_L("tb"), _L("UpdateListener2.txt"), EFileLoggingModeOverwrite);

iLog.Write(_L("smms appui"));

if (aUid.iUid == KUidApaMessageSwitchCreateFileValue)

{

TBuf<256> buf;

buf.Copy(aParams);

iLog.Write(aParams);

BringMeToFront();

ShowCreateFile(buf,CFileMonitorEngine::EImageType);

}

else

{

CAknViewAppUi::ProcessMessageL(aUid,aParams);

}

iLog.Close();

}

上一页  1 2 

Tags:Symbian UI 框架

编辑录入:coldstar [复制链接] [打 印]
赞助商链接