国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

SendMessage API函數在PowerBuilder中應用

2024-07-21 02:10:15
字體:
來源:轉載
供稿:網友
sendmessage api函數在powerbuilder中應用
sendmessage api函數在powerbuilder中應用
一、引言
在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,具體取決于消息 
3、 應用舉例
定義外部函數引用聲明:
funcation long sendmessage (long  hwnd as long,long wmsg , long wparam,long lparam) library "user32.dll" alias for  "sendmessagea" 
funcation long releasecapture()  library "user32.dll" 
定義實例變量:
constant long lb_itemfrompoint = 425
constant long htcaption = 2
constant long wm_nclbuttondown = 161
constant long em_getline = 404
constant long em_getlinecount = 399
constant long em_getlinecount = 186
constant long em_getline = 196
constant long tvm_setitemheight = 4379
constant long em_linescroll = 182
constant long em_limittext=197
1、列表框中鼠標移動時檢測位置項
powerscript:
在列表框的自定義事件ue_mousemove(pbm_mousemove)中寫入如下代碼:
pos = unitstopixels(parent.pointerx(),xunitstopixels!)+ unitstopixels(parent.pointery(),yunitstopixels!) * 65536
idx = sendmessage(handle(this), lb_itemfrompoint, 0, pos) if idx < 65536 then sle_1.text = lb_1.text(idx)
2、在列表框中查找匹配的項目
powerscript:
窗口的open事件:
lb_1.additem ("軟件")
lb_1.additem("電腦游戲")
lb_1.additem("電視機")
lb_1.additem("電視臺")
lb_1.additem("電腦")
lb_1.additem("電腦游戲軟件")
singlelineedit控件的modified事件:
long li_index
li_index= sendmessage(handle(this), em_getlinecount, -1, sle_1.text)
lb_1.selectitem(li_index)
3、為listbox添加水平滾動條
powerscript:
窗口的open事件:
lb_1.additem("軟件")
lb_1.additem("電腦游戲")
lb_1.additem("電視機")
lb_1.additem("電視臺")
lb_1.additem("電腦")
lb_1.additem("電腦游戲軟件")
sendmessage (handle(this), em_getline, 250, 0)
4、實現拖動無標題欄窗體
powerscript:
在窗口的自定義事件ue_lbuttondown(pbm_lbuttondown)
long returnval
x = releasecapture()
returnval = sendmessage(hwnd, wm_nclbuttondown, htcaption, 0)
5、獲取多行文本框行數
powerscript:
commandbutton的clicked事件
messagebox(“”, sendmessage(handle(mle_1), em_getlinecount, 0, 0))
6、設置樹型列表控件標題行高度
powerscript:
tv_1的constructor事件:
sendmessage(handle(tv_1), tvm_setitemheight, 60, 0)
7、突破powerbuilder中的多行文本框32k的限制
powerscript:
sendmessage(handle(mle_1), em_limittext, 65534, 0)
8、用程序代碼控制文本框的滾行與滾列
powerscript:
sendmessage(handle(sle_1), em_linescroll, 0, 1)//下卷一行
sendmessage(handle(sle_1), em_linescroll, 0, -1)//上卷一行
sendmessage(handle(sle_1), em_linescroll, 1, 0)//右卷一列
sendmessage(handle(sle_1), em_linescroll, -1, 0)//左卷一列
三、結束語
在編寫powerbuilder應用時,應該充分調用相關的api函數來擴充pb的一些不足。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣恩县| 拜泉县| 五原县| 京山县| 崇明县| 大名县| 海晏县| 宁乡县| 阿合奇县| 酒泉市| 如皋市| 宜宾市| 北碚区| 枣强县| 沁阳市| 沂水县| 娱乐| 益阳市| 巴青县| 九龙县| 新昌县| 阆中市| 八宿县| 凤山市| 和林格尔县| 永康市| 化德县| 文山县| 嫩江县| 鹤壁市| 高安市| 信阳市| 烟台市| 南陵县| 漾濞| 通城县| 莎车县| 铅山县| 平乐县| 榆林市| 新营市|