CEdit:: Create
创建 Windows 编辑控件,并将其附加到
CEdit
对象。复制
virtual BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
参数
dwStyle
指定编辑控件的样式。 将 编辑样式 的任意组合应用于控件。rect
指定编辑控件的大小和位置。 可以是CRect
对象或RECT
结构。pParentWnd
指定编辑控件的父窗口 (通常为CDialog
) 。 值不得为 NULL。nID
指定编辑控件的 ID。返回值
如果初始化成功,则为非零值;否则为0。
备注
可以通过
CEdit
两个步骤构造对象。 首先,调用CEdit
构造函数,然后调用Create
,它创建 Windows 编辑控件并将其附加到CEdit
对象。执行时
Create
,Windows 向编辑控件发送WM_NCCREATE、 WM_NCCALCSIZE、 WM_CREATE和WM_GETMINMAXINFO消息。默认情况下,将通过基类中
CWnd
的OnNcCreate、 OnNcCalcSize、 OnCreate和OnGetMinMaxInfo成员函数来处理这些消息。 若要扩展默认消息处理,请从CEdit
派生类,将消息映射添加到新类,并重写上述消息处理程序成员函数。 例如,重写OnCreate
,以便为新类执行所需的初始化。将以下 窗口样式 应用于编辑控件。
始终 WS_CHILD
WS_VISIBLE 通常
很少 WS_DISABLED
WS_GROUP 分组控件
WS_TABSTOP 以按 tab 键顺序包含编辑控件
示例
C++
// dynamically create an edit control CEdit *pEdit = new CEdit; pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, CRect(10, 10, 100, 100), this, 1);
编辑样式
编辑样式适用于 CEdit 类 对象。 在
dwStyle
参数 CEdit::Create中指定样式的组合。 有关Windows中编辑控件样式的详细信息,请参阅编辑控件样式 (Windows) 。
Style 说明 ES_AUTOHSCROLL
当用户在行末尾键入字符时,自动将文本向右滚动 10 个字符。 当用户按下 Enter 键时,控件会将所有文本滚动回 0 位置。 ES_AUTOVSCROLL
当用户按下最后一行的 Enter 时,自动向上滚动一页文本。 ES_CENTER
将文本居中单行或多行编辑控件中。 ES_LEFT
在单行或多行编辑控件中左对齐文本。 ES_LOWERCASE
将所有字符转换为小写,因为它们被键入到编辑控件中。 ES_MULTILINE
指定多行编辑控件。 (默认值为单行。) 如果 ES_AUTOVSCROLL
指定样式,编辑控件会显示尽可能多的行,并在用户按下 ENTER 键时垂直滚动。 如果未ES_AUTOVSCROLL
提供,编辑控件将显示尽可能多的行,如果在无法显示更多行时按 Enter,则会出现蜂鸣声。ES_AUTOHSCROLL
如果指定了样式,则当插入符超过控件右边缘时,多行编辑控件会自动水平滚动。 若要启动新行,用户必须按 Enter。 如果未ES_AUTOHSCROLL
提供,控件在必要时会自动将单词包装到下一行的开头;如果按下 Enter,也会启动一个新行。 单词包装的位置由窗口大小确定。 如果窗口大小发生更改,单词包装位置将更改,文本将重播。 多行编辑控件可以具有滚动条。 带有滚动条的编辑控件处理其自己的滚动条消息。 如上所述编辑无滚动条的控件,并处理父窗口发送的任何滚动消息。ES_NOHIDESEL
通常,当控件失去输入焦点时,编辑控件会隐藏所选内容,并在控件接收输入焦点时反转所选内容。 指定 ES_NOHIDESEL
删除此默认操作。ES_NUMBER
仅允许将数字输入到编辑控件中。 ES_OEMCONVERT
在编辑控件中输入的文本将从 ANSI 字符集转换为 OEM 字符集,然后返回 ANSI。 当应用程序调用 AnsiToOem
Windows 函数以将编辑控件中的 ANSI 字符串转换为 OEM 字符时,这可确保正确转换字符。 此样式最适用于编辑包含文件名的控件。ES_PASSWORD
将所有字符显示为星号 () * ,因为它们被键入到编辑控件中。 应用程序可以使用 SetPasswordChar
成员函数更改显示的字符。ES_READONLY
阻止用户在编辑控件中输入或编辑文本。 ES_RIGHT
在单行或多行编辑控件中右对齐文本。 ES_UPPERCASE
将所有字符转换为大写,因为它们被键入到编辑控件中。 ES_WANTRETURN
指定当用户在对话框中将文本输入多行编辑控件时按 Enter 键时插入回车符。 如果没有此样式,按 Enter 键的效果与按对话框的默认推送按钮的效果相同。 此样式对单行编辑控件不起作用。 框架窗口样式
框架窗口样式适用于 CFrameWnd 类 对象。 在
dwStyle
参数 CFrameWnd::Create中指定样式的组合。
Style 说明 FWS_ADDTOTITLE
指定要追加到框架窗口标题末尾的信息。 例如,“Microsoft Draw - Drawing in Document1”。 可以在应用程序向导的“文档模板字符串”选项卡中指定显示的字符串。 如果需要关闭此选项,请重写 CWnd::PreCreateWindow
成员函数。FWS_PREFIXTITLE
在框架窗口标题中的应用程序名称之前显示文档名称。 例如,“文档 - WordPad”。 可以在应用程序向导的“文档模板字符串”选项卡中指定显示的字符串。 如果需要关闭此选项,请重写 CWnd::PreCreateWindow
成员函数。FWS_SNAPTOBARS 控件在浮动窗口中而不是停靠在框架窗口时将控件栏括起来的框架窗口的大小。 此样式调整窗口的大小以适应控件栏。
if (!cEditBox.CreateEx(WS_EX_WINDOWEDGE, L"Edit",L"CMYEdit", WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL| ES_AUTOVSCROLL | ES_CENTER, rect, this, nID))
{
TRACE("Failed to create edit-control\n");
return FALSE;
}