下拉数据窗口事件捕获

■   DDDW   事件概述

⒈所有对DDDW的操作都通过触发pbm_command事件完成

①   在PB的用户事件中,大多数事件对应的Windows   事件都有两个参数:lparam   和   wparam,而在PB5.0中,pbm_command没有参数,但可以通过message对象的两个属性取得Windows事件对应的Event   ID,这两个属性就是:   LongParm   和   WordParm。

LongParm   包含DDDW的Handle,用intLow()可取得其Handle

WordParm   包含对DDDW的操作,用intHigh()可取得其Event   ID

②   在PB6.0(^)中,pbm_command带3个参数,其中hwndchild(long)与notificationcode(unsignedinteger)即DDDW的Handle和Event   ID。

⒉DDDW   的Event   ID   列表:

Event   Event   ID

-------------------------------

Clicked   1281

RowFocusChanged   2048

RightMouseButtonDown   2314

Left   Button   Up   2313

Retreive   End   769

MouseMove   2311

...  

至于问题中的上下滚动,倘为键盘,将导致行焦点改变(此外,还导致一个ID   =   2049的事件):

RowFocusChanged   2048


倘为鼠标点击滚动条上下按钮:

PageUp/PageDown   2339


⒊根据上述列表,就可以在   pbm_command   事件中判断对DDDW做了何种操作:


DataWindowChild   ldwc_Child


GetChild(   "Column ",   ldwc_Child   )


IF   IntLow(   Message.Longparm   )   =   Handle(   ldwc_Child   )   THEN  

CHOOSE   CASE   IntHigh(   Message.Wordparm   )

CASE   2048   //   RowFocusChanged   on   DDDW

CASE   1281   //   Clicked

CASE   2314   //   Right   Mouse   Button   Clicked

CASE   2311   //   MouseMove

END   CHOOSE

END   IF 

你可能感兴趣的:(windows,command,UP,button)