荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: Peter (小飞侠), 信区: Program
标 题: PowerBuilder的事件(续)
发信站: BBS 荔园晨风站 (Fri Dec 4 19:01:22 1998), 转信
> 列表框消息(前缀:pbm_lb)
> addstring 向列表框控件中增加一项或一个字符串
> deletestring 从列表框中删除一项或一个字符串
> dir 用目录列表填充列表框
> findstring 在列表框中搜索与所给字符串部分匹配的第一
>项
> findstringexact 在列表框中搜索与所给字符串精确匹配的第一
>项
> getcaretindex 在列表框中搜索拥有聚焦的项
> getcount 确定列表框中的项数
> getcursel 确定所选项是第几项
> gethorizontalextent 获得列表框的宽度、计算水平卷滚
> getitemheight 确定列表框控件中项的高度
> getitemrect 确定列表框的尺寸
> getsel 获得列表框中当前所选的项
> getselcount 在多选列表框中获得所选项的数目
> getselitems 用列表框中表框各自的项号填充一个给定的整
>数数组
> gettext 获得列表框中当前所选项的文本
> gettextlen 获得列表框中当前所选项的文本中的字符数
> gettopindex 确定列表框中可见的最上面一项的项号
> insertstring 向列表框中加入一个新字符串
> resetcontent 重置(消除)列表框中的内容
> selectstring 搜索并加亮与所给字符匹配的字符串
> selitemrange 选择/取消列表框中某一范围中的项
> setcaretindex 设置列表框中的某一项拥有聚焦
> setcolumnwidth 设置列表框中列的宽度
> setcursel 在列表框中选择并加亮一项;如果需要,卷滚到
>列表框
> sethorizontaltext 设置列表框中被水平卷滚的单元数
> setitemdata 设置与列表框相关的32位/4字节值
> setitemheight 设置列表框中项的高度。
> setsel 在列表框中选择一个字符串
> settabstops 设置列表框控件中tabstops的位置
> settopindex 卷滚列表框使特定的项成为可见的最上面一项
> 列表框通知消息(前缀:pbm_en)
> dblclk 用户在列表框控件中的某一项上双击
> errspace 用户试图超越可在列表框中输入字符的最大限
>制
> selcancel 当前选取文本被取消
> selchange 用户在列表框中选择或取消了一项
> 窗口消息(前缀:pbm_)
> activateapp 被激活的窗口属于另外一个应用
> askcbformatname 要求剪贴板中的内容被复制到一个使用自定义
>格式的文本缓冲区中
> char 传送键盘上按下的键
> chartoitem 通过转换键盘来的字符,帮助列表框定位其中
>的项
> childactivate 一个子窗口被移动或激活
> clear 用户要删除当前编辑器控件中的内容
> command 用户选择了一个菜单项、控件,或使用了加速
>键
> compacting 系统内存资源不足;当Windows占用了多于1/8
>的CPU时间紧缩内存时,产生这条消息
> compareitem 当新的一项被加入列表框或组合框时产生此消
>息,Window用这条消息进行项之间的比较
> ctlcolor 一个控件即将被画出,可在此时改变控件的颜
>色
> deadchar 用户选择了一种非英语字符集或其它特殊字符
>集,这将改变下面将要输入的字符
> deleteitem 从列表框或通用对话框中移去一项
> destroyclipboard 剪贴板内容被清除
> devmodechanged WIN.INI中的一个设备名被修改
> drawclipboard 剪贴板内容发生改变
> drawitem 列表框或通用对话框的一项内容被改变
> dropfiles 当鼠标左键在一个注册为拖放文件接受器的应
>用上释放时,发出该消息
> erasebkgnd 窗口的客户区需要重画
> fontchange 应用可用的字体数改变
> getdlgcode 通知消息,说明当前使用哪种类型的键盘
> getfont 获取当前激活的字体
> getminmaxinto Windows正在检查最小化或最大化窗口的尺寸
> gettext 从一个控件(如按钮或编辑器控件)中复制文本
>到一个内存缓冲区
> gettextlength 用来确定一个控件中的字符数
> hscrollclipboard 剪贴板的水平卷滚条被使用
> iconerasebkgnd 一个最小化窗口需要重化背景
> initdialog 一个对话框即将被显示
> initmenu 一个菜单即将被显示
> initmenupopup 一个弹出式窗口即将被显示
> keydown 键盘上的一个键被按下
> keyup 键盘上的一个键被释放
> mdiactive 一个MDI子窗口(表单)被激活
> mdicascade 以重叠的形式重排所有的表单
> mdicreate 创建一个表单
> mdidestroy 从MDI框架中移去一个表单
> mdigetactive 获得当前活动的MDI表单的句柄
> mdiiconrange 在一个MDI框架中重排最小化表单的图标
> mdimaximize 最大化一个MDI子表单
> mdinext 激活下一个MDI表单(紧接着活动表单的表单)
> mdirestore 把MDI表单恢复到它原来的大小
> mdisetmenu 将一个菜单与一个MDI表单联系起来
> mdifitle 平铺所有的MDI表单
> measureitem 这个消息被送给即将创建的、内有按钮或其它
>控件的窗口
> menuchar 用户使用了一个快捷键,但系统不支持该快捷
>键
> menuselect 用户选择了一个菜单项
> mouseactivate 用户在一个非活动窗口中点击了鼠标
> mousemove 用户移动了鼠标
> ncactivate 窗口的非客户区即将被激活
> nccalcsize 窗口的尺寸需要重新计算
> nccreate 窗口即将创建它的非客户区
> ncdestroy 窗口的非共享区被析构
> nchittest 每次非客户区被移动时都发送该消息
> nclbuttondblclk 用户在非客户区双点了鼠标左键
> ncpaint 非客户需要画出
> nextdlgctl 在对话框中将聚焦转给另一个控件
> paint 窗口的客户区需要被画出
> paintclipboard 剪贴板应用有剪贴操作,剪贴板查看器需重画
> palettechanged 系统调色板被改变
> paletteischanging 系统调色板即将被改变
> parentnotify 通知父窗口一个子窗口即将被创建
> querydragicon 用户要拖一个最小化窗口
> queryendsession 通知消息,说明窗口即将被关闭
> querynewpalette 应用即将收到输入聚焦,应该执行必要的颜色
>调整
> queryopen 一个最小化窗口即将被恢复
> quit 应用处理的最后一个消息
> renderallformats 通知一个剪贴板格式的拥有者,应用将失
>去所有的格式
> renderformats 通知消息,说明放在剪贴板中的数据应该用一
>种特殊格式传送
> setcursor 通知消息,说明鼠标指针在一个窗口中移动
> setfont 用来在对话框中改变字体
> setredraw 在加一个新项之前发送给列表框或通用对话框
> settext 用来改变窗口的标题或文本
> sizeclipboard 剪贴板查看器应用改变尺寸
> spoolerstatus 一个打印管理器任务被添加或删除
> syschar <ALT>键和其它某键同时被按下
> syscolorchange 一种或多种系统颜色被改变
> syscommand 用户选择了一个系统菜单命令
> sysdeadchar 通知消息,说明一种非英语字符集被选定
> syskeydown 用户按下某键的同时按下了<ALT>键
> syskeyup 用户释放了<ALT>组合键
> timechange 系统时钟被修改
> undo 从undo缓冲区复制文本到编辑器控件
> vkeytoitem 当一个列表框拥有聚焦时,用户按下了一个键
> vscroll 用户点击了垂直卷滚条
> vscrollclipboard 剪贴板查看器的垂直卷滚条被点击
> windowposchanged 窗口位置发生改变
> windowposchanging 窗口位置即将发生改变
> wininichange WIN.INI文件被修改
> 编程举例
> 许多最终用户曾长期使用基于DOS平台或基于字符终端的软件应
>用,在这些软件中,同一个窗口下的多个输入列之间聚焦的转换一般是
>靠键入回车驱动的,因此大多数的录入员都习惯于使用键盘右侧的数
>字键盘录入数据,每项数据录入后敲击回车,转到下一个输入项。在W
>indows环境下,同一个窗口下不同控件之间的转换是用tab键实现的,
>在一个DataWindow中无论是FreeForm形式还是Tabular或Grid形式,系
>统缺省都是使用tab键或Shift-tab键转换到下一个数据列或上一个数
>据列;而用户敲击回车键,系统会将聚焦转到下一条记录的第一个输入
>列上。这样用户就会向开发者提出这样的需求:希望用回车键来实现
>列之间的切换,以符合录入员的习惯。
> 如果我们熟悉了DataWindow的事件定义,就可以轻而易举地实现
>上述功能。我们在Data Window中定义一个EnterKey事件,以捕捉用户
>在DataWindow中输入的回车,并对其应实现的功能进行转换。
> 在"UserEvents..."的对话框中加入EventName为EnterKey,Event
>ID为pbm_dwnprocesse nter的事件,对其编程如下:
> int li_CurCol
> int li_cnt
> ∥得到当前光标所在的列数
> li_CurCol=getcolumn()
> ∥假设这个DataWindow共有6列
> if li_CurCol<6 then
> ∥如果当前列不是最后一列,将聚焦转到下一列
> setcolumn(li_CurCol+1)
> elseif rowcount()<=getrow() then
> ∥当前列是最后一列,而且当前行是最后一行,
> ∥则增加一行,并将聚焦转至该行的第一列
> li_cnt=insertrow(0)
> scrolltorow(li_cnt)
> setcolumn(1)
> else
> ∥当前列是最后一列,当前行不是最后一行,则将聚焦转至下一行
>的第一列
> li_cnt=getrow()+1
> setrow(li_cnt)
> scrolltorow(li_cnt)
> setcolumn(1)
> endif
> return1
>
>--
>m;37m※ 来源:.南大小百合信息交换站 bbs.nju.edu.cn.[FROM: hsia.nju.edu.cn]m
>
--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.3]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店