Edit Box Series Control Class
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
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
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
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
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
mEdit
It is inherited from the method ofmScrollView
.
setContent
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
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
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
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 strbuffstart -- 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
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
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
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
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
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
mSIEdit
It is inherited from the event of mEdit
.
Event ID
Parameter
explanation
NCSN_SLEDIT_ENTER
--
Capture enter key information
Method of mSIEdit
mSIEdit
It is inherited from the method of mEdit
. There is no newly introduced method.
Programming Example of mSIEdit
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
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
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
mMIEdit
It is inherited from the event of mEdit
. There is no newly introduced event.
Method of mMIEdit
mMIEdit
It is inherited from the method of mEdit
.
Programming Example of mMIEdit
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 >>
Last updated