VS2019 MFC动态创建EDIT控件 ,CEDIT类成员函数Create应用创建EDIT Control控件[MFC动态创建控件三]

35 篇文章 5 订阅

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_CREATEWM_GETMINMAXINFO消息。

默认情况下,将通过基类中 CWnd 的OnNcCreate、 OnNcCalcSize、 OnCreateOnGetMinMaxInfo成员函数来处理这些消息。 若要扩展默认消息处理,请从 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;
	}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值