荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: 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软件 网络书店