位置于:首页>>数据库类>>Power Builder>>正文
 PowerBuilder的事件(续)

 熟 悉 Windows 编程 的 人 员 都 知 道, Windows 的 API 为 程 序 员 提 供 了 大 量 的 消息, 约 有 两 百 多 个 的 消 息。 在 PowerBuilder 中, 系 统 将 每 个 Windows 消 息 做 为 事 件 传 递 给 程 序 员 处 理, 并 且 为 大 多 数普 通 的 事 件 提 供 了 缺 省 的 处 理。

       PowerBuilder 在 语句 描 绘 器 中 为 每 一 个 标 准 的 控 件 设 定 了 一 些 常 用 的事 件,一 般 的 编 程 人 员 基 于 这 些 事 件 就 基 本 可 以 完 成常 见 的 操 作。 如 果 我 们 会 遇 到 事 件 的 处 理 是 需 要 另 外的 截 获 Windows 的 消 息, 我 们 可 以 在 语 句 描 绘 器 的 菜 单 的 Declare | User Event... 中 加 入 一 个 新 的 事 件, 同 时 指 出 您 所 希望 对 应 的 Windows 消 息。

       Windows API 的 消息 一 般 以 两 到 三 个 字 符 的 标 识 开 始, 这 个 标 识 标 明 了该 消 息 的 来 源 或 对 象。 例 如:pbm_active实 际 上 对 应 的 是 WM_ACTIVATE,WM 说 明 该 消 息 是 一 窗 口 消 息。 其 它 的 消 息 前 缀包 括:

 *BM         按 钮 消 息*BN         按 钮 通 知 消 息*CB         通 用 对 话 框 消 息*CBN        通 用 对 话 框 通 知 消 息*DM         对 话 框 消 息*EM         编 辑 器 控 件 消 息*EN         编 辑 器 控 件 通 知 消 息*LB         列 表 框 消 息*LBN        列 表 框 通 知 消 息*MM         多 媒 体 消 息*SBN        卷 滚 条 通 知 消 息

       此 外 还 有 一个 DDE 消 息,DDE 消 息 从 技 术 上 来 说 属 于 窗 口 消 息, 但 在这 里 我 们 把 它 们 分 离 出 来, 因 为 PowerBuilder 并 不 完 全 支持 全 部 的 DDE 消 息。

       消 息 一 般 告诉 某 个 对 象(如 按 钮) 去 执 行 一 些 动 作。 通 知 消 息 一般 由 某 个 控 件 发 出, 它 通 知 应 用 程 序 某 些 事 件 在 其 上发 生 了。Waite Group 的 《Windows API 编 程 宝 典》 详 细 描 述 了 这 200 多 个 消 息 的 具 体 含 义, 这 些 消 息, 我 们 在 PowerBuilder 中也 可 以 用 Send(handle, message_no, word, long) 函 数 发 出。

       所 有 的 PowerBuilder 自 动 映 射 的 事 件 名 都 以"Pbm"前 缀, 例 如,BM_GETCHECK变成 了

       pbm_bmgetcheck。 通过 向 定 义 用 户 事 件 对 话 框 中 增 加 事 件, 程 序 员 可 以 在需 要 的 时 候 截 获 这 些 消 息。

       PowerBuilder 还 有另 一 类 消 息 是 标 准 的 Windows API 所 不 提 供 的 消 息。 这 类 消息 以"dw"或"dwn"开 头, 如 pbm_dwnretrieveend。 这 些 是与 数 据 窗 口 有 关 的 消 息 和 通 知 消 息, 因 为 数 据 窗 口 不是 标 准 窗 口 对 象, 它 们 有 它 们 自 己 的 事 件。

       下 面 我 们 解释 一 下 PowerBuilder 中 以 pbm 开 头 的 内 部 映 射 事 件 的 含 义。限 于 篇 幅, 我 们 不 能 全 部 介 绍, 只 能 将 每 一 类 中 举 一些 主 要 的 例 子, 其 余 的 事 件 类 推。

       单 选 或 多 选按 钮 消 息(前 缀:pbm_bm)

 getcheck               单选按钮或多选按钮是否被选?getstate               按钮是否加亮setcheck               将无线按钮或确认框的选中状态改为未选中状态,反之亦然setstate               加亮或不加亮按钮change                 改变按钮的风格;例如,改为单选按钮或组合框
单选或多选按钮通知消息(前缀:pbm_bn)clicked 按钮控件被点中disable 使按钮控件无效double-clicked 按钮控件被双点dragdrop 一个对象被放到按钮控件dragenter 一个对象被拖到按钮控件dragleave 一个对象被拖离按钮控件dragover 一个对象被拖经按钮控件hilite 按钮控件将被加亮paint 按钮控件将被绘制setfocus 按钮控件将获得聚焦unhilite 按钮控件将被不加亮通用对话框消息(前缀:pbm_cb)addstring 将字符串加到通用对话框deletestring 从通用对话框删除一个字符串dir 加一个目录列表到通用对话框findstring 搜索以一组字符开头的字符串findstringexact 搜索与所提供的字符完全匹配的字符串getcount 列表框中的项数getcursel 当前被选项的数目getdroppedcontrolset 列表框在屏幕上的坐标位置geteditsel 编辑器控件中被选字符的范围getextendedui 缺省或扩展的用户界面getitemdata 重画的列表框中的 4字节的项getitemheight 列表框中某一项的高度getlbtext 列表框中的文本getlbtextlen 列表框中文本的长度insertstring 向列表框中增加新的字符串或4字节项limittext 限制能被输入到列表框中的字符数resetcontent 删除列表框中所有元素selectstring 搜索匹配的字符串并显示setcursel 在列表框中选择并显示一项seteditsel 在列表框的编辑区域中选择一块文本setextendedui 设置缺省或扩展用户界面setitemdata 在列表框中设定 4字节(32位)项setitemheight 设置列表框中项的高度showdropdown 转换(显示或隐藏列表框中拖放区域)
通用对话框通知消息(前缀:pbm_cbn)dblclk 用户在列表中某一项上双点dragdrop 一个对象被放到通用对话框控件上dragententer 一个对象被拖到通用对话框控件上dragleave 一个对象被拖离通用对话框控件dragover 一个对象被拖经通用对话框控件dropdown 列表框的下放区域即将被显示editchange 编辑器控件中的文本发生变化editupdate 列表框编辑器控件中的文本即将被改变errspace 列表框满,不能再向其中加入项killfocus 通用列表框失去聚焦selchange 列表框中被选文本被改变selendcancel 用户按下了"取消"按钮selendok 用户按下了"确认"按钮setfocus 通用对话控件拥有聚焦
数据窗口消息(前缀:pbm_dw)closedropdown 关闭下拉式数据窗口scrollend 在数据窗口中卷滚到最后一行scrdlhome 在数据窗口中卷滚到第一行scrolllineend 卷滚到当前行的行尾(水平方向)scrolllinehome 卷滚到当前行的行首(水平方向)
数据窗口通知消息(前缀:pbm_dwn)backtabout 即将通过 Shift+Tab组合键离开该控件changing 控件即将被改变dropdown 下拉式列表框的下拉部分即将可见graphcreate 即将创建图形itemchangefocus 数据窗口控件中当前项的聚焦改变itemvalidationerror 对当前项的修改引起了一个合法性检查错误key 有键被按下。使用KeyDown()处理键盘值lbuttondown 鼠标左键被按下lbuttonup 鼠标左键被松开mbuttonclk 鼠标中键点击mbuttondbclk 鼠标中键双点mousemove 鼠标移动printmarginchange 打印边界被改变processenter 回车键被按下rowchange 数据窗口中聚焦从一行转向另一行tabdownout 用户在数据窗口最后一行按下了下箭头键tabout 用户在数据窗口的最后一行/列中按下了tab键tabupout 用户在数据窗口第一行中按下了上箭头键
动态数据交换(DDE)消息(前缀:pbm_dde)ddeack 收到一个DDE消息ddeinitiate 开始一个DDE会话ddeterminate 终止一个DDE会话
编辑器控件消息(前缀:pbm_em)canundo 编辑器控件是否能撤消上一次修改?emptyundobuffer 清空由 Windows管理的取消操作的缓冲区fmtlines 在多行编辑器控件的行尾增加或删除回车换行getfirstvisibleline 返回编辑器控件中可见的第一行的行号gethandle 获得编辑器控件使用的内存句柄getline 从编辑器控件中复制一行到内存中的一个缓冲区getlinecount 返回多行编辑器控件的行数getmodify 文本是否被用户修改getrect 返回控件的长方形域getsel 返回被选文本的起始位置limittext 限制用户键入的文本长度linefromchar 返回被选文本的行号lineindex 返回编辑器控件中被选行第一个字符在编辑串中的位置linelength 返回编辑器控件中被选行中的字符数linescroll 水平或垂直卷滚编辑器控件replacesel 从剪贴板或从键盘用新文本替换被选文本sethandle 设置编辑器控件的句柄指向内存中的一个缓冲区setmodify 设置编辑器控件的modified标志setpasswordchar 设置用户输入任何文本时显示的字符。用来在输入密码时的显示setrect 设置/重置编辑器控件所在的长方形区域。编辑器控件中的文本被重画。setrectnp 与Setrect大致相同,除了不重画文本setsel 选择字符settabstops 在多行编辑器控件中设置tab stopssetwordbreak 设置新的词拆分函数setwordbreakproc 设置新的词拆分过程undo 撤消最近的编辑操作
编辑控件通知消息(前缀:pbm_en)change 编辑器控件中的文本发生改变errspace 编辑器控件内存缓冲区溢出hscroll 用户点中上水平卷滚条maxtext 用户试图输入比所允许的更多的文本update 编辑器控件即将显示用户的修改vscroll 用户点中了垂直卷滚条

内部:http://xp163.com/
 PowerBuilder的事件(续)站内说明
 最新站点内更新

 

 书籍教程站内推荐信息
 书籍教程网站地图