读写控件文本/字体/热键——控制消息
1.读写窗体/标签/文本框/按钮/单选钮/复选钮/分组框/组合框/高级组合框里的文字内容
发送消息(窗体,设置文本,0,"标题名称") 这个代码可以修改窗口的标题栏内容 文本 内容[64];整数 长度=发送消息(文本框1,获取文本,64,内容); 这个代码可以获取编辑框的内容 获取文本时第三参数要指定缓冲区的长度,并不是文字长度,返回值是文本内容的真实长度, 接收文本的缓冲区应该用一个比较大的容量 内容这个缓冲区长度为64,那就只能获取63字节数据,因为文字内容必须以0结尾, 如果填满了64字节,就会认为后面还有文字没有读取完 如果文本框内容比较多,不清楚有多少字,就需要先获取文字的长度,然后申请相应长度的内存缓冲区 整数 长度=发送消息(文本框1,文本长度,0,0) 真实长度不计算文字末尾的0 整数 内存=申请内存(长度+1) 申请的内存长度要比真实长度多一字节 如果是宽字符模式,需要多加三字节;动态申请内存缓冲区不能使用 文本 内容[长度]这种方法,只能用申请内存相关的函数 发送消息(文本框1,获取文本,长度+1,内存) 指定缓冲区的长度也要加上一 释放内存(内存) 内存使用完之后,要释放内存。注意内存这个变量使用了三次 2.修改控件的字体 创建字体可以使用创建字体和新建字体这两个函数,新建字体需要使用逻辑字体类这个结构体 逻辑字体类 字号(高度=-12,名字="微软雅黑") 添加名为字号的逻辑字体类,高度也就是字体大小,使用负数表示 申请一个整数变量比如叫字体,然后在窗体启动时用 字体= 新建字体(字号),也就创建了一个字体 还有一种不用逻辑字体的创建方法:字体=创建字体(15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "宋体") 第一个参数逻辑高度是字体大小,详见: 创建字体(逻辑高度,字符宽度,擒纵角,取向角,粗细,斜体,下划线,删除线,字符集,输出精度,剪辑精度,输出质量,间距和字体,字体名称) 创建字体函数不支持微软雅黑等字体,数也太多,建议使用新建字体这个函数,只需要逻辑字体类这一个结构体参数即可创建 创建字体之后可以使用发送消息(按钮1,指定字体,字体,0)来指定标签,文本框,列表框,按钮等控件的字体 3.为窗口指定热键 发送消息(窗体,设置热键,0x71,0) 当用户按下F2键时,系统将激活窗口。键码参见键盘事件 第三参数的低8位是键码,高8位是组合类型:1 SHIFT,2 CTRL,4 ALT,8 扩展;参数为0取消热键关联 发送消息(窗体,设置热键,0x271,0) F2键前面加上2,高位就是CTRL,按下CTRL+F2就能激活主窗口 当用户按下热键时,系统会生成一条 系统命令 消息,交给处理窗口函数,会弹出该窗口;设置热键不能指定子窗口中文名字 | 常量数值 | 英文名称 | 释义 |
设置文本 | 12 | WM_SETTEXT | 设置一个窗口的文本。③参数:0;④数据:内容文本 |
获取文本 | 13 | WM_GETTEXT | 复制窗口的文本到缓冲区。③参数:最大长度;④数据:文本缓冲区 |
文本长度 | 14 | WM_GETTEXTLENGTH | 得到窗口的文本长度(不含结束符)。③参数:0;④数据:0 |
指定字体 | $30 | WM_SETFONT | 指定控件所用字体。③参数:字体;④数据:0不重绘;非0立即重绘 |
获取字体 | $31 | WM_GETFONT | 得到当前控件绘制其文本所用的字体。③参数:0;④数据:0 |
设置热键 | $32 | WM_SETHOTKEY | 为某窗口关联一个热键。 ③参数:键码/高位1SHIFT,2CTRL,4ALT,8扩展;④数据:0 |
获取热键 | $33 | WM_GETHOTKEY | 为某窗口关联一个热键。 ③参数:0;④数据:0;返回值:键码/高位1SHIFT,2CTRL,4ALT,8扩展 |
系统命令 | $112 | WM_SYSCOMMAND | 当用户按下 设置热键 指定的按键。③参数:键值;④数据:窗口 |
热键消息 | $312 | WM_HOTKEY | 当用户按下由注册热键函数注册的热键时。 ③参数:-1窗口,-2桌面; ④数据:低字=1Alt,2CTRL,4SHIFT,8WIN;高字=键码 |