要想使Symbian C++程式實現全螢幕顯示,有以下幾個方法。
[edit]
遮蓋系統視窗
使用一個簡單的方法,就可以使我們的控制項或者控制項容器擴充到全螢幕地區,個方法可以應用在即便沒有全螢幕視圖的視圖架構裡。那麼這個方法就是,CCoeControl::SetExtentToWholeScreen(),你可以在CMyView::ConstructL函數中,ActivateL()函數之前進行調用。請看示範代碼:
void CMyView::ConstructL(const TRect& aRect){// Create a window for this application viewCreateWindowL();// Set the window sizeSetRect(aRect);// This view is a full-screen view.SetExtentToWholeScreen();// Activate the window, which makes it ready to be drawnActivateL();}
SetExtentToWholeScreen()函數在支援皮膚的S60(從S60第二版之後,)應用程式中,並不推薦使用。不過,因為全螢幕的應用程式並不需要什麼特別的皮膚支援,所以實際上來講並不會產生太大的問題。
[edit]
隱藏
螢幕上方的狀態視窗和下方的功能鍵視窗都可以被隱藏,我們可以用這樣的方法實現應用程式的全屏化處理。下面的代碼可以應用在AppUi層來將狀態視窗(status pane)隱藏起來。
#include <eikbtgpc.h> #include <avkon.rsg>StatusPane()->MakeVisible(EFalse);
而螢幕下方的功能鍵視窗,可以在AppUi層調用 Cba()->MakeVisible(EFalse);函數來進行隱藏。執行了這個函數之後,程式預設的功能鍵將不會再產生響應命令。如果要想使程式預設的左右功能鍵發揮作用,那麼我們將不得不自己手動處理按鍵事件,這樣的操作要在HandleKeyEventL()函數中進行:
TKeyResponse CMyAppUi::HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType){// Left or right softkey pressedif (aType==EEventKeyDown && (aKeyEvent.iScanCode == EStdKeyDevice0 || aKeyEvent.iScanCode == EStdKeyDevice1)) {Cba()->MakeVisible(ETrue);}else{Cba()->MakeVisible(EFalse); }return EKeyWasNotConsumed;}
有了上述辦法,我們就可以將應用程式設定為全螢幕顯示了。