S60的输入对话框有时候背景和文字颜色都是白的,主要因为UI的构造,BaseConstructL(),没有允许换肤,解决方案:
1.UI构造函数如下写:
#if (defined __WINS__)||(defined EKA2)
BaseConstructL( CAknAppUi::EAknEnableSkin );
#else
BaseConstructL( EStandardApp | ELayoutAwareAppFlag | EAknEnableSkin);
#endif
2.在资源中设置标识:
flags = ENoCustomDraw;
上述两者只可取其一;
附:
text editor resource is defined as an EDWIN structure in a resource file. The EDWIN structure is defined in eikon.rh as follows:
STRUCT EDWIN { LONG flags=0; WORD width=0; WORD lines=1; WORD maxlength=0; AKN_EDITOR_EXTENSIONS } |
| Note: Symbian OS versions older than v9.1 (S60 1st and 2nd Edition) specify the text editor resource in the uikon.rh file. |
The fields listed in the EDWIN structure are common to all Symbian reference designs. Their meaning and use is described in the Text editor resource structure fields table below.
Field | Meaning |
Flags | Bit field of flags describing properties of the editor control to be created. These flags are defined in CEikEdwin::TFlags. The properties are listed and described in Numeric Key Maps. |
Width | The width of the control; can be specified either by the number of characters or by pixels depending on whether the flag EEikEdwinWidthInPixels is specified; if specified by the number of characters, the widest character of the chosen font is used to determine the actual width of the control. |
Lines | The number of text lines that the editor will display at once. |
maxlength | The maximum number of characters that can be stored in the editor control. |
Table: Text editor resource structure fields
AKN_EDITOR_EXTENSIONS defines more fields to the resource. These fields are specific to the S60 platform. The extensions contain the following fields:
WORD default_case=EAknEditorTextCase; WORD allowed_case_modes=EAknEditorAllCaseModes; WORD numeric_keymap=EAknEditorStandardNumberModeKeymap; WORD allowed_input_modes=EAknEditorAllInputModes; WORD default_input_mode=EAknEditorTextInputMode; LLINK special_character_table=-1; WORD avkon_flags=EAknEditorFlagDefault; WORD max_view_height_in_lines=0; WORD base_line_delta=0; WORD spare=0; |
There are many ways to alter the functionality of the text editor. The S60 platform-specific text editor resource structure fields table below lists the options and describes their meaning.
Field | Meaning |
default_case | The default case to apply when receiving user input (input modes and cases are described in Input Mode and Case). |
allowed_case_modes | The allowed case modes; the value set for default_case must be included in this field. |
numeric_keymap | The numeric key map to be used when the editor is in numeric entry mode. |
allowed_input_modes | The allowed input modes (input modes and cases are described in Input Mode and Case); as in case modes, the value set for default_input_mode must be included in this field. |
default_input_mode | The default input mode. |
special_character_table | The special character table to be displayed on user request. Special character tables are described in Special Character Tables. |
avkon_flags | Bit field of editor flags specific to the S60 platform. |
max_view_height_in_lines |
|
base_line_delta |
|
spare |
|
Table: S60 platform-specific text editor resource structure fields