您的位置:首页 > 其它

VC中Windows常用控件的创建和使用

2012-01-26 07:47 323 查看
编辑类控件
  以窗口类名"EDIT"创建的编辑类控件是一个可以用来接受用户键盘字符输入的矩形区域,可以在其内进行编辑操作。该控件是程序接受用户字符输入的一种主要手段,输入的内容存放在其父窗口容量有限的(32KB)局部堆中。
  MFC的CEdit类提供了有关编辑类控件的功能函数。编辑控件既可以在对话框模板上创建也可以通过代码来直接创建,这两种方式均要通过CEdit的构造函数来构造一个CEdit对象。CEdit类从CWnd继承了一些重要的函数,比如可以通过使用CWnd类成员函数SetWindowText()和GetWindowText()来设定和获取一个编辑控件中的文本。同按钮类控件类似,如果要处理由编辑控件发送给其父窗口的通知消息,需要在父窗口类中为每一个待处理消息增添消息映射入口和消息响应函数。
  在调用Create()函数创建编辑控件时,Windows系统将发出WM_NCCREATE、WM_NCCALCSIZE、WM_CREATE和WM_GETMINMAXINFO等消息给编辑控件。这些消息缺省地分别由OnNcCreate()、OnNcCalcSize()、OnCreate()和OnGetMinMaxInfo()等CWnd类成员函数进行处理,可以根据实际需要对其进行重载使用。作为一种特殊的窗口,编辑控件除了需要指定普通窗口风格外,还可以通过选用不同的控件风格而获取相应的功能效果,可选用的编辑风格列表如下:

编辑风格说明
ES_AUTOHSCROLL当在行尾添加一个字符后自动向右滚动10个字符。
ES_AUTOVSCROLL当输入回车后自动上滚一行。
ES_CENTER字符居中显示。
ES_LEFT字符左对齐。
ES_LOWERCASE统一转化为小写字母。
ES_MULTILINE允许多行显示。
ES_NOHIDESEL当编辑失去焦点时隐藏对字符的选定,重新获得焦点后以反色显示选中内容。
ES_OEMCONVERT将ANSI字符转化为OEM字符。
ES_PASSWORD以星号显示字符,多用于回显密码。
ES_RIGHT字符右对齐
ES_UPPERCASE统一转化为大写字母。
ES_READONLY设置字符为只读。
ES_WANTRETURN接受回车键输入。
  下面给出创建、用编辑控件的示例代码,该示例首先通过Create()函数创建一个控件对象,并通过SetWindowText()函数为其设置字符。通过添加对控件通知消息的响应代码可以检测文本是否发生了改变。程序主要实现清单如下:

// 控件的创建部分: // 创建编辑控件 m_ctrEdit.Create(WS_VISIBLE | WS_CHILD | WS_BORDER | ES_WANTRETURN | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL, CRect(10, 50, 250, 150), this, ID_EDIT1); // 为控件设置字符 m_ctrEdit.SetWindowText("Hello World!"); …… // 添件对控件通知消息的响应 //{{AFX_MSG(CSample02View) afx_msg void OnEnChange(); //}}AFX_MSG DECLARE_MESSAGE_MAP() …… BEGIN_MESSAGE_MAP(CSample02View, CView) //{{AFX_MSG_MAP(CSample02View) ON_EN_CHANGE(ID_EDIT1, OnEnChange) //}}AFX_MSG_MAP END_MESSAGE_MAP() …… void CSample02View::OnEnChange() { // 通知消息响应代码 AfxMessageBox("内容已改变!"); }

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: