日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

CEikEdWin 类的使用

發(fā)布時(shí)間:2025/4/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CEikEdWin 类的使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?

CEikEdWin? 類(lèi)的使用

CEikEdWin 是一個(gè)編輯框類(lèi),如同 edit,textbox ,這個(gè)類(lèi)對(duì)應(yīng)的 RESOURCE STRUCT 名為

EDWIN

把這個(gè)控件結(jié)構(gòu)添加到資源文件中為

RESOURCE EDWIN r_edwin_test

{
????flags = EAknEditorFlagDefault;
??? width = qtn_app_edit_width;
??? lines = qtn_app_edit_height;
??? maxlength = qtn_app_edit_maxLength;
}
其中 qtn_app_edit_width/height/maxLength 是定義在 loc 文件中的
如:
#define qtn_app_edit_width? 50
#define qtn_app_edit_height 1
#define qtn_app_edit_maxLength 20

但是 EAknEditorFlagDefault 沒(méi)有找到在哪里定義,應(yīng)該是默認(rèn)設(shè)置

關(guān)于類(lèi)在資源中的結(jié)構(gòu)可以通過(guò) Developer?Library?? API?Reference?? C++?API?reference?? Uikon?Resources 找到各個(gè)類(lèi)的資源
結(jié)構(gòu)定義

在 rss 文件中要引用 hrh 及 loc 文件

在代碼文件中要引入
工程名.rsg 文件

下面是添加一個(gè) CEikEdwin 類(lèi)的主要步驟:

  • 在 RSS 文件中添加 工程名.hrh 及 工程名.loc 文件如
    #include "XXX.hrh"
    #include "XXX.loc"
  • 添加上 CEikEdwin 的 引用 #include <eikon.rh>
  • 添加資源結(jié)構(gòu)定義,如:
    RESOURCE EDWIN r_edwin_Test
    {
    ?flags = EAknEditorFlagDefault;
    ?width = qtn_app_edit_width;
    ?lines = qtn_app_edit_height;
    ?maxlength = qtn_app_edit_maxLength;
    }
  • 在 container 類(lèi)的頭文件添加定義
    class CEikEdwin;
    可以參考項(xiàng)目自動(dòng)生成的代碼,都會(huì)有前向定義的
  • 在類(lèi)中添加類(lèi)成員聲明,聲明成一個(gè)類(lèi)指針變量,如:
    CEikEdwin* iEdit;
  • 在類(lèi)實(shí)現(xiàn)文件中添加
    #include <barsread.h>??// for ResourceReader
    #include <eikedwin.h>? // for CEikEdwin
    #include <EDITCONTROL.RSG>? // 這個(gè) rsg 文件是 rss 文件編譯生成的文件,對(duì)每個(gè)資源賦予一個(gè) id
  • 在類(lèi)實(shí)現(xiàn)文件中的 ConstructL 方法中添加以下代碼

    ?TResourceReader aRead ;
    ?iCoeEnv->CreateResourceReaderLC(aRead,R_EDWIN_TEST);
    ?iEdit = new (ELeave) CEikEdwin();
    ?iEdit->SetContainerWindowL(*this);
    ?iEdit->ConstructFromResourceL(aRead);
    ?iEdit->SetBackgroundColorL(KRgbRed);
    ?//iEdit->SetTextL( _L("Add Your controls\n here"));
    ?CleanupStack::PopAndDestroy();
    ?iEdit->SetExtent(EDWIN_POS,iEdit->MinimumSize());? //?這句是指定位置的 edwin_pos 是 在頭文件中定義的 #define EDWIN_POS?????????? TPoint( 10, 25 )
    ?iEdit->SetFocus(ETrue);
  • 在 draw 方法中去掉那個(gè)把背景畫(huà)成灰的代碼,所有的都注釋就行了
  • 找到父類(lèi)的 TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); 虛擬方法,添加到 private 中
    實(shí)現(xiàn)代碼為:
    TKeyResponse CeditTestContainer::OfferKeyEventL( const TKeyEvent& aKeyEvent,TEventCode aType )
    {
    ?if (iEdit)
    ?{
    ??if(iEdit->IsFocused())
    ??{
    ???return iEdit->OfferKeyEventL(aKeyEvent,aType);
    ??}
    ?}
    }
  • 編譯運(yùn)行,就可以看到輸入框控件在界面上顯示出來(lái)了,試著輸入,還可以輸入
  • ===========================

    zziss@原創(chuàng)
    qi_jianzhou@126.com

    ?

    ?

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/zziss/articles/1631041.html

    總結(jié)

    以上是生活随笔為你收集整理的CEikEdWin 类的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。