PB中所有事件的列表清单

 

PowerBuilder的事件   

熟悉Windows编程的人员都知道,Windows的API为程序员提供了大量的消息,约有200多个。在PowerBuilder中,系统将每个Windows消息作为事件传递给程序员处理,并且为大多数普通的事件提供了缺省处理。   
PowerBuilder在语句描绘器中为每一个标准的控件设定了一些常用事件,一般的编程人员基于这些事件就基本可以完成常见的操作。如果我们遇到事件的处理需要另外截获Windows的消息,我们可以在语句描绘器菜单的 "Declare|UserEvent... "中加入一个新的事件,同时指出您所希望对应的Windows消息。   
Windows   API的消息一般以两到三个字符的标识开始,这个标识标明了该消息的来源或对象。例如:pbm_active实际上对应的是WM_ACTIVATE,WM说明该消息是一窗口消息。其它的消息前缀包括:   
*BM   按钮消息   
*BN   按钮通知消息   
*CB   通用对话框消息   
*CBN   通用对话框通知消息   
*DM   对话框消息   
*EM   编辑器控件消息   
*EN   编辑器控件通知消息   
*LB   列表框消息   
*LBN   列表框通知消息   
*MM   多媒体消息   
*SBN   卷滚条通知消息   
此外还有一个DDE消息,DDE消息从技术上来说属于窗口消息,但在这里我们把它们分离出来,因为PowerBuilder并不完全支持全部的DDE消息。   
消息一般告诉某个对象(如按钮)去执行一些动作。通知消息一般由某个控件发出,它通知应用程序某些事件在其上发生了。WaiteGroup的《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字节(32位)项   
getitemheight   列表框中某一项的高度   
getlbtext   列表框中的文本   
getlbtextlen   列表框中文本的长度   
insertstring   向列表框中增加新的字符串或4字节项   
limittext   限制能被输入到列表框中的字符数   
resetcontent   删除列表框中所有元素   
selectstring   搜索匹配的字符串并显示   
setcursel   在列表框中选择并显示一项   
seteditsel   在列表框的编辑区域中选择一块文本   
setextendedui   设置缺省或扩展的用户界面   
setitemdata   在列表框中设定4字节(32位)项   
setitemheight   设置列表框中项的高度   
showdropdown转换(显示或隐藏)列表框中拖放区域   

通用对话框通知消息(前缀:pbm_cbn)   
dblclk   用户在列表中某一项上双点   
dragdrop   一个对象被放到通用对话框控件上   
dragenter   一个对象被拖到通用对话框控件上   
dragleave   一个对象被拖离通用对话框控件   
dragover   一个对象被拖经通用对话框控件   
dropdown   列表框的下放区域即将被显示   
editchange   编辑器控件中的文本发生变化   
editupdate   列表框编辑器控件中的文本即将被改变   
errspace   列表框满,不能再向其中加入项   
killfocus   通用列表框失去聚焦   
selchange   列表框中被选文本被改变   
selendcancel   用户按下了 "取消 "按钮   
selendok   用户按下了 "确认 "按钮   
setfocus   通用对话控件拥有聚焦   

数据窗口消息(前缀:pbm_dw)   
closedropdown   关闭下拉式数据窗口   
scrollend   在数据窗口中卷滚到最后一行   
scrollhome   在数据窗口中卷滚到第一行   
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   在多行编辑器控件中设置tabstops   
setwordbreak   设置新的词拆分函数   
setwordbreakproc   设置新的词拆分过程   
undo   撤消最近的编辑操作   

编辑控件通知消息(前缀:pbm_en)   
change   编辑器控件中的文本发生改变   
errspace   编辑器控件内存缓冲区溢出   
hscroll   用户点中上水平卷滚条   
maxtext   用户试图输入比允许更多的文本   
update   编辑器控件即将显示用户的修改   
vscroll   用户点中了垂直卷滚条

列表框消息(前缀: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文件被修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值