31 KiB
Edit Box and Derived Control
Brief Introduction to Edit Box Control
Edit box control is one of the essential controls in GUI system, which is mainly used to receive character input of the users and realize the function of user interaction and text edition. In Realization, it is divided into single line edit and multi-line edit. Single line edit box is used to receive single line text input with comparatively simple user content, in comparison, multi-line text is used to receive complicated and large volume of text input.
-
Class hierarchical relation of edit box
-
Example diagram
mEdit
- Control window class:
NCSCTRL_EDIT
- Control English name: Edit
- Brief introduction: Foundation class of edit box series controls, it is the abstract parent class of single line edit box and multi-line edit box, which defines the common use interface of the two.
- Schematic diagram: Abstract class, and cannot be used directly.
Style of mEdit
It is inherited from the style of mScrollView
Style name | miniStudio property name | Explanation |
---|---|---|
NCSS_EDIT_LEFT |
Align->Left |
Left aligned |
NCSS_EDIT_CENTER |
Align->Center |
Horizontal centering |
NCSS_EDIT_RIGHT |
Align->Right |
Right aligned |
NCSS_EDIT_UPPERCASE |
Case->Upper |
The input content is automatically converted to capital letter |
NCSS_EDIT_LOWERCASE |
Case->Lower |
The input content is automatically converted to lower case letter |
NCSS_EDIT_NOHIDESEL |
HideSel->FALSE |
When the edit box loses focus, the selected content still remains selected status |
NCSS_EDIT_READONLY |
ReadOnly->TRUE |
The content is read only |
NCSS_EDIT_BASELINE |
BaseLine->TRUE |
Content underlined display |
Property of mEdit
It is inherited from the property of mScrollView
.
Property | miniStudio property name | Type | Authority | Explanation |
---|---|---|---|---|
NCSP_EDIT_LIMITTEXT |
MaxLength |
int | RW |
Character number limit value |
NCSP_EDIT_CARETPOS |
-- | int | RW |
Cursor location |
Event of mEdit
It is inherited from the event of mScrollView
.
Event ID | Parameter | Explanation |
---|---|---|
NCSN_EDIT_CHANGE |
-- | Content changes |
NCSN_EDIT_CONTCHANGED |
-- | When edit loses the focus, the content changes |
NCSN_EDIT_UPDATE |
-- | The content is refreshed when changed through setText and resetContent method or the property is changed |
NCSN_EDIT_SELCHANGED |
-- | The selected part changes |
NCSN_EDIT_MAXTEXT |
-- | Character number is saturated |
NCSN_EDIT_SETFOCUS |
-- | Get the focus |
NCSN_EDIT_KILLFOCUS |
-- | Lose the focus |
Method of mEdit
It is inherited from the method ofmScrollView
.
setContent
void setContent(mEdit *self, const char* str, int start, int len)
- Parameter
- str -- literal content displayed in edi
- start -- display starting location (relative to the starting location of str), 0 represents starting from the beginning
- len -- display character number, -1 represents ending till the end of str
- Explanation: Set the display content of the edit box. The method will get altogether characters from No. character location from str character string, and replace the existing content in edit.
- Example:
// In edit, character string starting from the sixth character till the end of characterstring “dddd Show Me” will be displayed, and here it is “Show Me”
_c(edit)->setContent(edit, "dddd Show Me", 6, -1);
replaceText
void replaceText(mEdit *self, const char* str,
int start, int len, int replace_start, int replace_end)
- Parameter
- str -- source character string used for replacement
- start -- deviation of the source text used for replacement relative to str, 0 represents starting from the beginning
- len -- length used to the source text, -1 represents starting from start and ending till str
replace_start
-- replace the starting location (relative to the existing content in edit)replace_end
-- replace the ending location (relative to the existing content in edit)
- Explanation:
Replacement of character string, the method will get altogether characters
starting from No. character location from str character string, and replaces
the existing content from to in edit. Str is the character string to be
replaced to, start is the starting location relative to str, 0 represents
starting from the beginning, len is the length, -1 represents ending till the
end of str,
replace_start
andreplace_end
are the starting point and ending point of the location to be replaced, and they are location deviation relative to the existing text content in edit. - Example:
// In edit, character string starting from the sixth character to the end of the character string “dddd Show Me” will be used (here it is “Show Me”),
// To replace the characters from the second one to the tenth one of the existing text in edit
_c(edit)->replaceText(edit, "dddd Show Me", 6, -1, 2, 10);
insert
void insert(mEdit *self, const char* str, int start, int len, int at)
- Parameter
- str -- source character string to be inserted
- start -- starting location of the source text used, 0 represents starting from the beginning
- len -- length of the source text used, -1 represents starting from start, and ending till str
- at -- location of the insert point (relative to the existing content in edit), -1 represents the end
- Explanation: Insert of the character string, the method will get altogether characters starting from No. character location in str character string, and it is inserting into location of No. character of the existing content in edit. Str is the character string to be inserted, start is the starting location relative to str, 0 represents starting from the beginning, len is the length, -1 represents ending till the end of str, at parameter is the location to insert, and it is the location deviation relative to the existing text content in edit
- Example:
//In edit, character string starting from the sixth character till the end of the character string “dddd Show Me” will be used (here it is “Show Me”),
// To insert to after the second character of the existing text in edit
_c(edit)->insert(edit, "dddd Show Me", 6, -1, 2);
append
void append(mEdit *self, const char* str, int start, int len)
- Parameter
- str -- source character string to append
- start -- starting location of the source text used, 0 represents starting from the beginning
- len -- length of the source text used, -1 represents starting from start and ending till str
- Explanation: Append the character string, the method will get altogether characters starting from No. character location from str character string, and append to after the existing content in edit. str is the character string to append, start is the starting location relative to str, 0 represents starting from the beginning, len is the length, and -1 represents ending till the end of str.
- Example:
// In edit, character string starting from the sixth character till the end of the character string “dddd Show Me” will be used (here it is “Show Me”),
// To append till the end of the existing text in edit
_c(edit)->append(edit, "dddd Show Me", 6, -1);
getTextLength
int getTextLength(mEdit *self)
- Explanation: Get length of the content of the character string in Edit
- Example:
int text_len = _c(edit)->getTextLength(edit);
getContent
int getContent(mEdit *self, char *strbuff, int buf_len, int start, int end)
- Parameter:
- strbuff -- get storage location to the character string (storage space shall be distributed in advance)
buff_len
-- size of strbuff- start -- starting location of the obtained content
- end -- ending location of the obtained content
- Explanation:
Get character string content in edit, and get the content from to location from
the existing content and write into strbuff, and the maximum number to write in
is limited to
buff_len.
- Example:
char buff[128];
_c(edit)->getContent(edit, buff, 127, 0, -1); // Get out all the content in edit, and buff stores 127 characters to the maximum
setSel
and getSel
int setSel(mEdit *self, int start, int end)
int getSel(mEdit *self, int *pstart, int *pend)
- Parameter:
- start \end -- starting point and ending point of the selected region
- pstart\pend -- starting point and ending point of the selected region, used for function return
- Explanation: Set and get the region of the selected text, and the last two parameters correspond to the starting point and ending point of the selected region respectively
- Example:
_c(edit)->setSel(edit, 2, 10); // Set No.2 to No.10 characters of edit as selected status
int ps,pe;
_c(edit)->getSel(edit, &ps, &pe); // Get the selected region
setMargin
void setMargin(mEdit *self, int left, int top, int right, int bottom)
- Parameter:
- left,top,right,bottom -- margin of left, top, right and bottom, the parameter is not a concept of rectangle, and it just continues to use the data structure of rectangle for the convenience of parameter transmission
- Explanation: Set left, top, right and bottom margin of the edit region
- Example:
// Set margin
_c(edit)- >setMargin(edit, 10,10,10,10);
copy, paste, and cut
void copy(mEdit *self)
void cut(mEdit *self)
void paste(mEdit *self)
TextCopyPaste * setCopyPaste(mEdit *self, TextCopyPaste* cp)
Cut, copy and paste aim at the operation of the selected region. In edit, a
group of operation set using minigui cut board is realized by default, and the
users can set operation set realized by itself through setCopyPaste
.
makevisible
BOOL makevisible(mEdit *self, int pos)
- Parameter:
- pos -- location needs to be visible
- Explanation:
Control scrolling of the edit region, making the characters of the location
pos
become visible. - Example:
// Visible at No. 201 character
_c(edit)- >makevisible(edit, 201);
mSlEdit
- Control window class:
NCSCTRL_SLEDIT
- Control English name: Single Line Edit Or SlEdit
- Brief introduction: Single line text edit box
- Schematic diagram:
Style of mSIEdit
It is inherited from the style of mEdit
.
Style name | miniStudio property name | Explanation |
---|---|---|
NCSS_SLEDIT_PASSWORD |
Password->TRUE |
Content of the edit box is shield displayed in the mode of password input |
NCSS_SLEDIT_AUTOSELECT |
AutoSelect->TRUE |
Automatic selected style, after the focus is obtained, the text automatically becomes selected status |
Property of mSIEdit
It is inherited from the property of mEdit
.
Property | miniStudio property name | Type | Authority | Explanation |
---|---|---|---|---|
NCSP_SLEDIT_TIPTEXT |
ToolTip |
char * | RW |
Prompt information character string, when there is no input, information used to prompt users |
NCSP_SLEDIT_PWDCHAR |
PasswordChar |
char | RW |
Character displayed by pass word, only NCSS_SLEDIT_PASSWORD style is valid, * by default |
Event of mSIEdit
It is inherited from the event of mEdit
.
Event ID | Parameter | explanation |
---|---|---|
NCSN_SLEDIT_ENTER |
-- | Capture enter key information |
Method of mSIEdit
It is inherited from the method of mEdit
.
There is no newly introduced method.
Programming Example of mSIEdit
SlEdit
Example code:
/*
** edit.c: Sample program for mGNCS Programming Guide
** Using edit.
**
** Copyright (C) 2009 ~ 2019 FMSoft Technologies.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#include <mgncs/mgncs.h>
#define ID_NAME 104
#define ID_COUN 105
#define ID_CITY 106
#define ID_PSWD 107
#define ID_SPIN 108
#define ID_INFO 109
#define ID_REG 155
#define ID_CAN 156
static BOOL mymain_onCreate (mWidget* _this, DWORD add_data)
{
return TRUE;
}
static void mymain_onClose (mWidget* _this, int message)
{
DestroyMainWindow (_this->hwnd);
PostQuitMessage (_this->hwnd);
}
static NCS_EVENT_HANDLER mymain_handlers[] = {
{MSG_CREATE, mymain_onCreate},
{MSG_CLOSE, mymain_onClose},
{0, NULL}
};
static void btn_onClicked(mWidget* _this, int id, int nc, HWND hCtrl)
{
if(nc == NCSN_WIDGET_CLICKED)
{
if (id == ID_CAN){
PostMessage(GetParent(_this->hwnd), MSG_CLOSE, 0, 0);
} else if (id == ID_REG){
//TODO
}
}
};
static NCS_EVENT_HANDLER btn_handlers[] =
{
{NCS_NOTIFY_CODE(NCSN_WIDGET_CLICKED), btn_onClicked},
{0, NULL}
};
static NCS_RDR_INFO btn_rdr_info[] =
{
{"fashion","fashion", NULL}
};
static NCS_PROP_ENTRY static_props[] =
{
{NCSP_STATIC_ALIGN, NCS_ALIGN_RIGHT},
{0, 0}
};
static NCS_PROP_ENTRY spin_props [] =
{
{NCSP_SPNBOX_MAXPOS, 99},
{NCSP_SPNBOX_MINPOS, 0},
{NCSP_SPNBOX_CURPOS, 25},
{NCSP_SPNBOX_LINESTEP, 1},
{0, 0}
};
#define HSTART 25
#define HSPACE 40
static NCS_WND_TEMPLATE _ctrl_templ[] =
{
//START_OF_SLEDIT_TEMPLATE
{
NCSCTRL_STATIC,
0,
10, HSTART, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Name :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //左对齐
NCSCTRL_SLEDIT,
ID_NAME,
100, HSTART, 150, 25,
WS_BORDER | WS_VISIBLE | NCSS_EDIT_LEFT,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Age :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_SPINBOX,
ID_SPIN,
100, HSTART + HSPACE, 70, 25,
WS_VISIBLE | NCSS_SPNBOX_NUMBER | NCSS_SPNBOX_AUTOLOOP,
WS_EX_NONE,
"",
spin_props,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + 2 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Country:",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //居中对齐, 大写字母
NCSCTRL_SLEDIT,
ID_COUN,
100, HSTART + 2 * HSPACE, 130, 25,
WS_BORDER | WS_VISIBLE | NCSS_EDIT_CENTER | NCSS_EDIT_UPPERCASE,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + 3 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"City :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //小写字母
NCSCTRL_SLEDIT,
ID_CITY,
100, HSTART + 3 * HSPACE, 150, 25,
WS_BORDER | WS_VISIBLE | NCSS_EDIT_LOWERCASE,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + 4 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Passwd :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //密码输入形式的edit
NCSCTRL_SLEDIT,
ID_PSWD,
100, HSTART + 4 * HSPACE, 150, 25,
WS_BORDER | WS_VISIBLE | NCSS_SLEDIT_PASSWORD,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
//END_OF_SLEDIT_TEMPLATE
//START_OF_MLEDIT_TEMPLATE
{
NCSCTRL_STATIC,
0,
10, HSTART + 5 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Info :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //多行编辑框
NCSCTRL_MLEDIT,
ID_INFO,
100, HSTART + 5 * HSPACE, 200, 160,
WS_BORDER | WS_VISIBLE | WS_VSCROLL | NCSS_EDIT_BASELINE,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
//END_OF_MLEDIT_TEMPLATE
{
NCSCTRL_BUTTON,
ID_REG,
240, 400, 80, 25,
WS_VISIBLE | NCSS_NOTIFY,
WS_EX_NONE,
"Register",
NULL,
btn_rdr_info,
btn_handlers, NULL, 0, 0
},
{
NCSCTRL_BUTTON,
ID_CAN,
120, 400, 80, 25,
WS_VISIBLE | NCSS_NOTIFY,
WS_EX_NONE,
"Cancel",
NULL,
btn_rdr_info,
btn_handlers, NULL, 0, 0
},
};
static NCS_MNWND_TEMPLATE mymain_templ =
{
NCSCTRL_DIALOGBOX,
1,
0, 0, 360, 480,
WS_CAPTION | WS_BORDER | WS_VISIBLE,
WS_EX_NONE,
"Register",
NULL,
NULL,
mymain_handlers,
_ctrl_templ,
sizeof(_ctrl_templ)/sizeof(NCS_WND_TEMPLATE),
0,
0, 0,
};
int MiniGUIMain (int argc, const char* argv[])
{
ncsInitialize ();
mDialogBox* mydlg = (mDialogBox *)ncsCreateMainWindowIndirect
(&mymain_templ, HWND_DESKTOP);
_c(mydlg)->doModal (mydlg, TRUE);
ncsUninitialize ();
return 0;
}
- We define use template of
SIEdit
in this way
{
NCSCTRL_STATIC,
0,
10, HSTART, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Name :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //左对齐
NCSCTRL_SLEDIT,
ID_NAME,
100, HSTART, 150, 25,
WS_BORDER | WS_VISIBLE | NCSS_EDIT_LEFT,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Age :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_SPINBOX,
ID_SPIN,
100, HSTART + HSPACE, 70, 25,
WS_VISIBLE | NCSS_SPNBOX_NUMBER | NCSS_SPNBOX_AUTOLOOP,
WS_EX_NONE,
"",
spin_props,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + 2 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Country:",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //居中对齐, 大写字母
NCSCTRL_SLEDIT,
ID_COUN,
100, HSTART + 2 * HSPACE, 130, 25,
WS_BORDER | WS_VISIBLE | NCSS_EDIT_CENTER | NCSS_EDIT_UPPERCASE,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + 3 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"City :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //小写字母
NCSCTRL_SLEDIT,
ID_CITY,
100, HSTART + 3 * HSPACE, 150, 25,
WS_BORDER | WS_VISIBLE | NCSS_EDIT_LOWERCASE,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + 4 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Passwd :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //密码输入形式的edit
NCSCTRL_SLEDIT,
ID_PSWD,
100, HSTART + 4 * HSPACE, 150, 25,
WS_BORDER | WS_VISIBLE | NCSS_SLEDIT_PASSWORD,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
- Control window class:
NCSCTRL_MLEDIT
- Control English name: Multiline Edit or
MlEdit
- Brief introduction: Multiline text edit box
- Schematic diagram:
Style of mMIEdit
It is inherited from the style of mEdit
.
Style name | miniStudio property name | Explanation |
---|---|---|
NCSS_MLEDIT_AUTOWRAP |
AutoWrap->TRUE |
Automatic wrap |
Property of mMIEdit
It is inherited from the property of mEdit
.
Property | miniStudio property name | Type | Authority | Explanation |
---|---|---|---|---|
NCSP_MLEDIT_LINECOUNT |
-- | int | RO |
Row number |
NCSP_MLEDIT_LINEHEIGHT |
LineHeight |
int | RW |
Row height |
NCSP_MLEDIT_LINEFEEDISPCHAR |
-- | char | WO |
Line break is displayed by this character |
NCSP_MLEDIT_LINESEP |
LineSeperator |
char | RW |
Line break symbol, “\n” by default |
NCSP_MLEDIT_CARETSHAPE |
CaretShap |
int | RW |
Cursor shape ED_CARETSHAPE_LINE or ED_CARETSHAPE_BLOCK |
NCSP_MLEDIT_NUMOFPARAGRAPHS |
-- | int | RO |
Number of paragraphs |
Event of mMIEdit
It is inherited from the event of mEdit
.
There is no newly introduced event.
Method of mMIEdit
It is inherited from the method of mEdit
.
Programming Example of mMIEdit
MlEdit
Example code:
/*
** edit.c: Sample program for mGNCS Programming Guide
** Using edit.
**
** Copyright (C) 2009 ~ 2019 FMSoft Technologies.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#include <mgncs/mgncs.h>
#define ID_NAME 104
#define ID_COUN 105
#define ID_CITY 106
#define ID_PSWD 107
#define ID_SPIN 108
#define ID_INFO 109
#define ID_REG 155
#define ID_CAN 156
static BOOL mymain_onCreate (mWidget* _this, DWORD add_data)
{
return TRUE;
}
static void mymain_onClose (mWidget* _this, int message)
{
DestroyMainWindow (_this->hwnd);
PostQuitMessage (_this->hwnd);
}
static NCS_EVENT_HANDLER mymain_handlers[] = {
{MSG_CREATE, mymain_onCreate},
{MSG_CLOSE, mymain_onClose},
{0, NULL}
};
static void btn_onClicked(mWidget* _this, int id, int nc, HWND hCtrl)
{
if(nc == NCSN_WIDGET_CLICKED)
{
if (id == ID_CAN){
PostMessage(GetParent(_this->hwnd), MSG_CLOSE, 0, 0);
} else if (id == ID_REG){
//TODO
}
}
};
static NCS_EVENT_HANDLER btn_handlers[] =
{
{NCS_NOTIFY_CODE(NCSN_WIDGET_CLICKED), btn_onClicked},
{0, NULL}
};
static NCS_RDR_INFO btn_rdr_info[] =
{
{"fashion","fashion", NULL}
};
static NCS_PROP_ENTRY static_props[] =
{
{NCSP_STATIC_ALIGN, NCS_ALIGN_RIGHT},
{0, 0}
};
static NCS_PROP_ENTRY spin_props [] =
{
{NCSP_SPNBOX_MAXPOS, 99},
{NCSP_SPNBOX_MINPOS, 0},
{NCSP_SPNBOX_CURPOS, 25},
{NCSP_SPNBOX_LINESTEP, 1},
{0, 0}
};
#define HSTART 25
#define HSPACE 40
static NCS_WND_TEMPLATE _ctrl_templ[] =
{
//START_OF_SLEDIT_TEMPLATE
{
NCSCTRL_STATIC,
0,
10, HSTART, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Name :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //左对齐
NCSCTRL_SLEDIT,
ID_NAME,
100, HSTART, 150, 25,
WS_BORDER | WS_VISIBLE | NCSS_EDIT_LEFT,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Age :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_SPINBOX,
ID_SPIN,
100, HSTART + HSPACE, 70, 25,
WS_VISIBLE | NCSS_SPNBOX_NUMBER | NCSS_SPNBOX_AUTOLOOP,
WS_EX_NONE,
"",
spin_props,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + 2 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Country:",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //居中对齐, 大写字母
NCSCTRL_SLEDIT,
ID_COUN,
100, HSTART + 2 * HSPACE, 130, 25,
WS_BORDER | WS_VISIBLE | NCSS_EDIT_CENTER | NCSS_EDIT_UPPERCASE,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + 3 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"City :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //小写字母
NCSCTRL_SLEDIT,
ID_CITY,
100, HSTART + 3 * HSPACE, 150, 25,
WS_BORDER | WS_VISIBLE | NCSS_EDIT_LOWERCASE,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
{
NCSCTRL_STATIC,
0,
10, HSTART + 4 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Passwd :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //密码输入形式的edit
NCSCTRL_SLEDIT,
ID_PSWD,
100, HSTART + 4 * HSPACE, 150, 25,
WS_BORDER | WS_VISIBLE | NCSS_SLEDIT_PASSWORD,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
//END_OF_SLEDIT_TEMPLATE
//START_OF_MLEDIT_TEMPLATE
{
NCSCTRL_STATIC,
0,
10, HSTART + 5 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Info :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //多行编辑框
NCSCTRL_MLEDIT,
ID_INFO,
100, HSTART + 5 * HSPACE, 200, 160,
WS_BORDER | WS_VISIBLE | WS_VSCROLL | NCSS_EDIT_BASELINE,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
//END_OF_MLEDIT_TEMPLATE
{
NCSCTRL_BUTTON,
ID_REG,
240, 400, 80, 25,
WS_VISIBLE | NCSS_NOTIFY,
WS_EX_NONE,
"Register",
NULL,
btn_rdr_info,
btn_handlers, NULL, 0, 0
},
{
NCSCTRL_BUTTON,
ID_CAN,
120, 400, 80, 25,
WS_VISIBLE | NCSS_NOTIFY,
WS_EX_NONE,
"Cancel",
NULL,
btn_rdr_info,
btn_handlers, NULL, 0, 0
},
};
static NCS_MNWND_TEMPLATE mymain_templ =
{
NCSCTRL_DIALOGBOX,
1,
0, 0, 360, 480,
WS_CAPTION | WS_BORDER | WS_VISIBLE,
WS_EX_NONE,
"Register",
NULL,
NULL,
mymain_handlers,
_ctrl_templ,
sizeof(_ctrl_templ)/sizeof(NCS_WND_TEMPLATE),
0,
0, 0,
};
int MiniGUIMain (int argc, const char* argv[])
{
ncsInitialize ();
mDialogBox* mydlg = (mDialogBox *)ncsCreateMainWindowIndirect
(&mymain_templ, HWND_DESKTOP);
_c(mydlg)->doModal (mydlg, TRUE);
ncsUninitialize ();
return 0;
}
- We define the use template of
MIEdit
in this way
{
NCSCTRL_STATIC,
0,
10, HSTART + 5 * HSPACE, 70, 25,
WS_VISIBLE,
WS_EX_NONE,
"Info :",
static_props,
NULL,
NULL, NULL, 0, 0
},
{ //多行编辑框
NCSCTRL_MLEDIT,
ID_INFO,
100, HSTART + 5 * HSPACE, 200, 160,
WS_BORDER | WS_VISIBLE | WS_VSCROLL | NCSS_EDIT_BASELINE,
WS_EX_NONE,
"",
NULL,
NULL,
NULL, NULL, 0, 0
},
<< Property Sheet Control Class | Table of Contents | Animation Control Class >>