內容摘要:我們經常需要在軟鍵的外部打開一個我們自己程式的檔. 比如: 在PC上打開TXT的時候系統自動調用記事本.但如果我們設置了檔的屬性讓EditPlus打開TXT檔.那以後打開TXT預設就調用EditPlus打開檔了.

我們經常需要在軟鍵的外部打開一個我們自己程式的檔.

比如:

在PC上打開TXT的時候系統自動調用記事本.但如果我們設置了檔的屬性讓EditPlus打開TXT檔.那以後打開TXT預設就調用EditPlus打開檔了.

那檔案名和路徑是如何傳給EditPlus的.

在 symbian 中如何打開檔的?

大家可用看一下 CAknDocument 這個類.

它有一個方法:


IMPORT_C CFileStore* CAknDocument::OpenFileL ( TBool aDoOpen,
const TDesC & aFilename,
RFs & bsp; aFs
)

有這樣的方法.我們的Document 只要繼承了 CAknDocument 就可用使用這個方法.


CFileStore* CDocument::OpenFileL(TBool /*aDoOpen*/, const TDesC& aFilename, RFs& /*aFs*/)
{
iAppUi->OpenFileL (aFilename );
return NULL;
}

可用看到 iAppUi ,我們可用看一下它是如何定義的.

它是eikdoc.h標頭檔中定義的.


CEikAppUi* iAppUi;

我們可用看一下 CEikAppUi 的定義,發現它有一個方法 :


virtual IMPORT_C void OpenFileL(const TDesC &aFileName);
Description
Opens the specified file.
The default implementation is empty.
Parameters
const TDesC &aFileName The name of the file to open.
Return value
void

這個方法同上面的OpenFileL 比較是沒有返回值的.

我們可用在我們程式中的AppUi 類中實現


void CAppUi::OpenFileL(const TDesC &aFileName )
{
//做打開檔的操作.
}

這樣在不啟動軟體的時候,點擊關聯的檔就會啟動程式.

 

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()