其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

SendMessage API函数在PowerBuilder中应用[1]


发布日期:2021年07月31日
 
SendMessage API函数在PowerBuilder中应用[1]

引言

在Powerbulider巧妙地调用API函数SendMessage可以完成Pb中的一些用常规的方法而很难实现的功能特将对该api函数在Powerbuilder中的使用例举几个方面的运用以期起到抛砖引玉的效果(以下代码完全可以使用PowerBuilder中的Send函数替代SendMessage 这个Api函数因起稿比较匆忙代码未经测试)

函数说明

SendMessage函数说明

说明

调用一个窗口的窗口函数将一条消息发给那个窗口除非消息处理完毕否则该函数不会返回SendMessageBynum SendMessageByString是该函数的类型安全声明形式

返回值

Long由具体的消息决定

参数表

参数 类型及说明

hwnd Long要接收消息的那个窗口的句柄

wMsg Long消息的标识符

wParam Long具体取决于消息

lParam Any具体取决于消息

Powerbuilder中已使用函数Send函数对其进行了封装

函数原形Send ( handle message# lowword long )

Send函数说明

说明

调用一个窗口的窗口函数将一条消息发给那个窗口除非消息处理完毕否则该函数不会返回

返回值

Long由具体的消息决定

参数表

参数 类型及说明

handle Long要接收消息的那个窗口的句柄

message# Long消息的标识符

lowword Long具体取决于消息

long long具体取决于消息

应用举例

定义外部函数引用声明

funcation long SendMessage (long hwnd As Longlong wMsg long wParamlong lParam) Library userdll Alias for SendMessageA

funcation long ReleaseCapture() Library userdll

定义实例变量

Constant long LB_ITEMFROMPOINT =

Constant long HTCAPTION =

Constant long WM_NCLBUTTONDOWN =

Constant long EM_GETLINE =

Constant long EM_GETLINECOUNT =

Constant long EM_GETLINECOUNT =

Constant long EM_GETLINE =

Constant long TVM_SETITEMHEIGHT =

Constant long EM_LINESCROLL =

Constant long EM_LIMITTEXT=

列表框中鼠标移动时检测位置项

Powerscript:

在列表框的自定义事件ue_mousemove(pbm_mousemove)中写入如下代码

pos = unitstopixels(parentpointerx()XUnitsToPixels!)+ unitstopixels(parentpointery()yUnitsToPixels!) *

idx = SendMessage(handle(this) LB_ITEMFROMPOINT pos) If idx < Then sle_Text = lb_text(idx)

在列表框中查找匹配的项目

Powerscript:

窗口的open事件

[] []

               

上一篇:SendMessage API函数在PowerBuilder中应用[2]

下一篇:PowerBuilder使用自定义事件触发键盘Enter事件