21. 文本控件

文本(TEXT)控件通常用于在对话框或窗口中显示各种文本字段,或者是与其他控件配合使用。 虽然前面章节讲到的文本显示和数值显示API函数同样可以在对话框中使用,但是多多少少有些不方便, 而且独立的控件便于统一管理和控制。文本控件在对话框中的显示效果如图 文本控件在对话框中的显示 。

在这里插入图片描述
文本控件支持3种通知代码,以区分不同的操作动作,见表格 文本控件支持的通知代码 。
在这里插入图片描述
实际上文本控件的这些通知代码基本上用不到,就连GUIBuilder生成的代码框架也没有添加这些通知代码。 文本控件不支持获得输入焦点,并且不会对键盘输入做出反应。

21.1. 创建文本控件
21.1.1. 文本控件API
在这里插入图片描述
21.1.2. 文本控件创建函数
21.1.2.1. TEXT_CreateEx()
在指定位置创建指定大小的文本控件。

代码清单:文本控件-1 函数原型

TEXT_Handle TEXT_CreateEx(int x0, int y0, int xSize, int ySize,
                        WM_HWIN hParent, int WinFlags, int ExFlags,
                        int Id, const char *pText);
  1. x0: 文本控件在父坐标中的最左侧像素;

  2. y0: 文本控件在父坐标中的最顶侧像素;

  3. xSize: 文本的水平尺寸,以像素为单位;

  4. ySize: 文本的垂直尺寸,以像素为单位;

  5. hParent: 父窗口句柄。如果为0,则将桌面窗口作为其父窗口;

  6. WinFlags: 窗口创建标志。由于控件本质上是窗口,所以文本控件在创建时可以使用几乎所有的窗口创建标志。 这些标志中按钮最常用的是WM_CF_SHOW。全部创建标志请参考emWin手册的窗口管理器章节;

  7. ExFlags: 文本的对齐方式,可选值见表格 ExFlags参数可选值 ;

  8. Id: 控件ID号;

  9. pText: 指向要显示的文本的指针。

返回值:创建成功后返回已创建的文本控件句柄,创建失败则返回0。
在这里插入图片描述
21.1.2.2. TEXT_CreateIndirect()
从对话框资源表中创建文本控件。

代码清单:文本控件-2对话框方式创建文本控件函数

TEXT_Handle TEXT_CreateIndirect(const GUI_WIDGET_CREATE_INFO *
                                pCreateInfo, WM_HWIN hWinParent, int
                                x0, int y0, WM_CALLBACK * cb);
  1. pCreateInfo: 指向GUI_WIDGET_CREATE_INFO结构的指针;

  2. hParent: 父窗口的句柄;

  3. x0: 文本控件在父坐标中的最左边像素;

  4. y0: 文本控件在父坐标中的最顶部像素;

  5. cb: 回调函数指针。

此函数的第一个参数指向的是 代码清单:控件基础-3 的资源表结构,但不使用其中的para参数。 其中的Flags参数的可选值与表格 ExFlags参数可选值 相同。

21.2. 文本控件基础实验
21.2.1. 代码分析
21.2.1.1. 创建对话框
在本实验中,我们通过对话框的方式来创建文本控件,这样可以方便管理各种界面元素,见 代码清单:文本控件-3 。

代码清单:文本控件-3 创建对话框(TextDLG.c文件)

/* 控件ID */
#define ID_FRAMEWIN_0   (GUI_ID_USER + 0x00)
#define ID_TEXT_0   (GUI_ID_USER + 0x01)
#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值