不需資源檔的對話框!

不需資源檔的對話框! ( QueryWinL / InfoWinL / AlertWinL / CAknGlobalNote )

 

剛接觸到Symbian的UI時,第一個要找的就是類似windows訊息框(MessageBox)的對話框來秀出除錯訊息,結果發現到要在symbian上的對話框除了需要原始檔之外還必需自己寫資源檔(*.rssi),雖然新的Carbide 2.0有提供UI designer 但是卻因為UI架構的關係使用起來不太方便尤其是多個View的時候,還好Symbian 還是有提供幾個不需要資源檔就可以直接使用的對話框!以下就來介紹這些對話框的使用方式

 

1.詢問框,帶有指定文字,提供Yes/No。如果選Yes,返回ETrue,反之則反!

 

static TBool CEikonEnv::QueryWinL(const TDesC &aFirstLine, const TDesC &aSecondLine);

 

 

2.訊息框,帶有兩行指定文字,但沒有icon圖示!可以在任意類別中使用

 

static void CEikonEnv::InfoWinL(const TDesC &aFirstLine, const TDesC &aSecondLine);

Usage : CEikonEnv::Static()->InfoWinL(_L("note:"), _L("text")); 

 

 

3.警告訊息框,帶有指定文字及icon和tone聲,為CEikonEnv的非靜態成員函式,只能在ui、view和container中使用

 

static void CEikonEnv::AlertWinL(const TDesC &aFirstLine, const TDesC &aSecondLine);

Usage : iEikonEnv->AlertWin(_L("text")); 

 

 

4.等待框,比起CAknWaitDialog啟動的時間更即時!

 

class : CAknGlobalNote 

head file : aknglobalnote.h 

Lib : aknnotify.lib eiksrv.lib 

Usage : 

 

//顯示等待對話框

CAknGlobalNote* globalNote = CAknGlobalNote::NewL(); 

CleanupStack::PushL( globalNote ); 

//取消"取消"鍵,讓使用者無法取消等待,但是R_AVKON_SOFTKEYS_EMPTY必需有其他的資源檔曾定義過!

globalNote ->SetSoftkeys(R_AVKON_SOFTKEYS_EMPTY);

TInt iWaitNoteId = globalNote->ShowNoteL( EAknGlobalWaitNote, _L("對話框中顯示的文字!") ); 

CleanupStack::PopAndDestroy(); 

 

//結束等待對話框

CAknGlobalNote * note = CAknGlobalNote::NewL(); 

CleanupStack::PushL( note ); 

note->CancelNoteL( iWaitNoteId ); 

CleanupStack::PopAndDestroy(); 

 

注: 

CAknGlobalNote還可顯示其他各種不同類型的對話框,由ShowNoteL中第一個參數決定,其參數如下: 

 

enum TAknGlobalNoteType 

EAknGlobalInformationNote = 1, 

EAknGlobalWarningNote, 

EAknGlobalConfirmationNote, 

EAknGlobalErrorNote, 

EAknGlobalChargingNote, 

EAknGlobalWaitNote, 

EAknGlobalPermanentNote, 

EAknGlobalNotChargingNote, 

EAknGlobalBatteryFullNote, 

EAknGlobalBatteryLowNote, 

EAknGlobalRechargeBatteryNote, 

EAknCancelGlobalNote, 

EAknGlobalTextNote 

}; 

你可能感兴趣的:(不需資源檔的對話框!)