详解 CEikonEnv::Static() iEikonEnv EikAppUi() AppUi() CAknViewAppUi CEikApplication CCoeEnv
2009-11-13 17:26
267 查看
详解CEikonEnv::Static()iEikonEnvEikAppUi()AppUi()CAknViewAppUiCEikApplicationCCoeEnv
请解释以下语句:
1.
#defineiAvkonViewAppUi((CAknViewAppUi*)CEikonEnv::Static()->EikAppUi()) inaknviewappui.h
先用CEikonEnv::Static()得到一个指向CEikonEnv实例的指针,再用EikAppUi()得到一个指向CEikAppUi的指针,然后转换为CAknViewAppUi指针。
CEikAppUi 和 CAknViewAppUi 的继承关系可以参见后面的关系清单。
iAvkonViewAppUi->ProcessMessageL(TUid::Uid(KUidApaMessageSwitchOpenFileValue),aParams);inownercppfile
2.
#defineiEikonEnv(STATIC_CAST(CEikonEnv*,iCoeEnv))
#defineSTATIC_CAST(type,exp)(static_cast<type>(exp))
转换iCoeEnv指针 为 指向CEikonEnv 实例的指针。
iEikonEnv与CEikonEnv::Static()等价。
iCoeEnvwasdefinedinclassCEikApplication.
iCoeEnv是这样被定义的:
protected:
CCoeEnv*iCoeEnv;
classCCoeEnv:publicCActive,publicMObjectProvider
classCActive:publicCBase
CCoeEnv 介绍:
CCoeEnvprovidesanactiveenvironmentforcreatingcontrols.Itimplements
activeobjectsandanactivescheduler,whichprovideaccesstothewindow
server,simplifyingtheAPIforapplicationprograms.Italsoprovidesutility
functionsthatareusefultomanyapplications.
CEikApplication的详细介绍见后。
3.
CCamAppUi*appUi=static_cast<CCamAppUi*>(CEikonEnv::Static()->AppUi());
CCamAppUi*appUi=static_cast<CCamAppUi*>(iEikonEnv->AppUi());
CCamAppUiisowner*Ui.cppfile.
先用CEikonEnv::Static()得到一个指向CEikonEnv实例的指针,再用AppUi()得到一个指向(PointertotheappUIownedbytheapplication.)的指针,然后转换为CCamAppUi的指针。
CCamAppUi 是我们自己的class.
解释如下所述:
classCEikonEnv:publicCCoeEnv;
Description
Anenvironmentforcreatingcontrolsandutilityfunctionsformanipulatingthem.
EveryGUIapplicationisprovidedwithaninstanceofCEikonEnvbytheframework,whichcanbeaccessedthrougheitherCEikonEnv::Static()ortheiEikonEnvmacroofCEikApplication.
所以,不要去管CEikonEnv和其他类的关系,我们只能用CEikonEnv::Static()ortheiEikonEnv 来得到一个CEikonEnv 实例,然后就调用CEikonEnv 中的方法。
通过CEikonEnv::Static() 和 iEikonEnv,为什么就可以得到一个CEikonEnv实例呢?
答:
GLDEF_CTIntE32Main()
{
returnEikStart::RunApplication(NewApplication);
}
RunApplication会创建一个CEikonEnv对象。
CEikonEnv中的静态方法可以直接调用,不需要先得到一个实例。如:
CEikonEnv::InfoWinL(_L("note:"),_L("text"));
1:
EikAppUi()-DefinedinCEikonEnv: (CEikonEnv::Static()->EikAppUi())
inlineCEikAppUi*EikAppUi()const;
Description
GetstheapplicationUIoftheapplicationusingthisCEikonEnv.
2:
iEikonEnv:Location:EIKDEF.H
iEikonEnv(STATIC_CAST(CEikonEnv*,iCoeEnv))
Description
MacrotoalloweasyaccesstotheCEikonEnvinstance.
iCoeEnvwasdefinedinclassCEikApplication.
iCoeEnv是ClassCEikApplication的保护数据成员
classCEikApplication:publicCApaApplication;
Description
ThebaseofallUikonapplications.
CEikApplicationbuildsonCApaApplication,providingabasisforapplicationsworkingwithintheframeworkprovidedbyUikon.Italsocontainsaninterfacetotheresourcefileandthedocument.
EachUikonapplicationclassisderivedfromCEikApplication.ApplicationwritersmustprovideatleastanimplementationofthepurevirtualfunctionCreateDocumentL().
Theapplication'sresourcefilecanbechangedfromthedefaultbyoverridingResourceFileName().
Derivation
CBase-Baseclassforallclassestobeinstantiatedontheheap
CApaApplication-Definesthebasicbehaviourforapplications
CEikApplication-ThebaseofallUikonapplications
3:
AppUi()-InheritedfromCCoeEnv:(CEikonEnv::Static()->AppUi())
inlineCCoeAppUi*AppUi()const;
Description
GetstheapplicationUIownedbythisapplication.
AppUi继承关系:CShowContactAppUiisownerclass.
classCShowContactAppUi:publicCAknViewAppUi
classCAknViewAppUi:publicCAknAppUi
classCAknAppUi:publicCAknAppUiBase,MEikStatusPaneObserver,publicMCoeViewDeactivationObserver,publicMAknTouchPaneObserver
classCAknAppUiBase:publicCEikAppUi
classCEikAppUi:publicCCoeAppUi,publicMEikMenuObserver,publicMCoeMessageObserver ,publicMObjectProvider
classCCoeAppUi:publicCBase
Application继承关系:CShowContactApplicationisownerclass.
classCShowContactApplication:publicCAknApplication
classCAknApplication:publicCEikApplication
classCEikApplication:publicCApaApplication
classCApaApplication:publicCBase
请解释以下语句:
1.
#defineiAvkonViewAppUi((CAknViewAppUi*)CEikonEnv::Static()->EikAppUi()) inaknviewappui.h
先用CEikonEnv::Static()得到一个指向CEikonEnv实例的指针,再用EikAppUi()得到一个指向
iAvkonViewAppUi->ProcessMessageL(TUid::Uid(KUidApaMessageSwitchOpenFileValue),aParams);inownercppfile
2.
#defineiEikonEnv(STATIC_CAST(CEikonEnv*,iCoeEnv))
#defineSTATIC_CAST(type,exp)(static_cast<type>(exp))
转换iCoeEnv指针 为 指向CEikonEnv 实例的指针。
iEikonEnv与CEikonEnv::Static()等价。
iCoeEnvwasdefinedinclass
iCoeEnv是这样被定义的:
protected:
CCoeEnv*iCoeEnv;
classCCoeEnv:publicCActive,publicMObjectProvider
classCActive:publicCBase
CCoeEnv 介绍:
CCoeEnvprovidesanactiveenvironmentforcreatingcontrols.Itimplements
activeobjectsandanactivescheduler,whichprovideaccesstothewindow
server,simplifyingtheAPIforapplicationprograms.Italsoprovidesutility
functionsthatareusefultomanyapplications.
3.
CCamAppUi*appUi=static_cast<CCamAppUi*>(CEikonEnv::Static()->AppUi());
CCamAppUi*appUi=static_cast<CCamAppUi*>(iEikonEnv->AppUi());
CCamAppUiisowner*Ui.cppfile.
先用CEikonEnv::Static()得到一个指向CEikonEnv实例的指针,再用AppUi()得到一个指向(PointertotheappUIownedbytheapplication.)的指针,然后转换为CCamAppUi的指针。
CCamAppUi 是我们自己的class.
解释如下所述:
classCEikonEnv:publicCCoeEnv;
Description
Anenvironmentforcreatingcontrolsandutilityfunctionsformanipulatingthem.
EveryGUIapplicationisprovidedwithaninstanceofCEikonEnvbytheframework,whichcanbeaccessedthrougheither
所以,不要去管CEikonEnv和其他类的关系,我们只能用
通过
答:
GLDEF_CTIntE32Main()
{
returnEikStart::RunApplication(NewApplication);
}
RunApplication会创建一个CEikonEnv对象。
CEikonEnv中的静态方法可以直接调用,不需要先得到一个实例。如:
CEikonEnv::InfoWinL(_L("note:"),_L("text"));
1:
EikAppUi()-DefinedinCEikonEnv: (CEikonEnv::Static()->EikAppUi())
inlineCEikAppUi*EikAppUi()const;
Description
GetstheapplicationUIoftheapplicationusingthisCEikonEnv.
2:
iEikonEnv:Location:EIKDEF.H
iEikonEnv(STATIC_CAST(CEikonEnv*,iCoeEnv))
Description
Macrotoalloweasyaccesstothe
iCoeEnvwasdefinedinclass
classCEikApplication:publicCApaApplication;
Description
ThebaseofallUikonapplications.
CEikApplicationbuildson
EachUikonapplicationclassisderivedfromCEikApplication.Applicationwritersmustprovideatleastanimplementationofthepurevirtualfunction
Theapplication'sresourcefilecanbechangedfromthedefaultbyoverriding
Derivation
CEikApplication-ThebaseofallUikonapplications
3:
AppUi()-Inheritedfrom
inlineCCoeAppUi*AppUi()const;
Description
GetstheapplicationUIownedbythisapplication.
|
classCShowContactAppUi:publicCAknViewAppUi
classCAknViewAppUi:publicCAknAppUi
classCAknAppUi:publicCAknAppUiBase,MEikStatusPaneObserver,publicMCoeViewDeactivationObserver,publicMAknTouchPaneObserver
classCAknAppUiBase:publicCEikAppUi
classCEikAppUi:publicCCoeAppUi,publicMEikMenuObserver,publicMCoeMessageObserver ,publicMObjectProvider
classCCoeAppUi:publicCBase
Application继承关系:CShowContactApplicationisownerclass.
classCShowContactApplication:publicCAknApplication
classCAknApplication:publicCEikApplication
classCEikApplication:publicCApaApplication
classCApaApplication:publicCBase
相关文章推荐
- 关于方法CEikonEnv::Static()方法和宏iEikonEnv的使用区别。
- 关于方法CEikonEnv::Static()方法和宏iEikonEnv的使用区别
- illegal use of incomplete struct/union/class 'CAknViewAppUi'
- CAknViewAppUi 和CAknAppUi
- undefined identifier iEikonEnv(转)
- Class CEikonEnv
- illegal use of incomplete struct/union/class 'CAknViewAppUi'
- Symbian中的iEikonEnv和iCoeEnv变量以及文件操作
- static详解
- Android 总结:Manifest文件中,application和activity标签属性详解
- Android编译系统详解(一)——build/envsetup.sh
- [IE编程] IE的Killbit 技术详解
- static 块,static 方法详解
- Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释
- Application属性详解
- Qt应用程序之Application Main Window详解
- C/C++中static关键字详解
- IE的有条件注释详解(附实例代码)
- static 详解
- Java中的static详解