熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PB編程 >> 正文

SendMessage API函數在PowerBuilder中應用[1]

2013-11-23 17:26:45  來源: PB編程 

  引言

  在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事件

[]  []  


From:http://tw.wingwit.com/Article/program/PB/201311/24597.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.