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

首頁 > 開發 > 綜合 > 正文

淺談如何利用PB實現仿QQ自動顯示/隱藏窗口(一)(原創)

2024-07-21 02:10:10
字體:
來源:轉載
供稿:網友


作者:balloonman2002  2004年6月26日

本文擬結合powerbuilder語言,簡述如何實現類似qq的自動顯示/隱藏窗口,即:鼠標移入時自動彈出窗口,鼠標移出后自動隱藏窗口,同時當隱藏窗口后實現windows操作系統啟動畫面時顯示的不同顏色條滾動效果以提示用戶。

本文擬分以下四部分論述分三次完成:

(一)基本思路

(二)基礎準備工作

(三)自動顯示/隱藏窗口功能實現

(四)顏色條滾動效果實現

一、基本思路

(一)利用api:trackmouseevent函數捕獲wm_mouseleave消息,來獲取并處理鼠標移出事件;利用window的mousemove事件來處理鼠標移入事件。

(二)利用api:createsolidbrush、fillrect函數來動態創建顏色漸變區域,以實現不同顏色條滾動效果。

注:

(1)通過調用trackmouseevent函數能夠捕獲到wm_ncmousehover、wm_ncmouseleave、wm_mousehover、wm_mousehover四類消息;

(2)同樣也可以捕獲wm_mousehover消息來處理鼠標移入事件,本例為簡單起見直接處理mousemove事件;

二、基礎準備工作

1、新建一窗口,為便于說明問題,本例將窗口的window type屬性設置為popup類型,同時將title bar屬性設置為無,這樣可以減少鼠標進入非客戶區域時也觸發wm_mouseleave消息的影響;

2、聲明本地外部函數:

function integer trackmouseevent(ref str_track_mouse str_trm) library 'user32.dll'

function integer getcursorpos(ref str_point lppoint) library 'user32.dll'

function integer getwindowrect(long ll_hwnd,ref str_rect lprect) library 'user32.dll'

function ulong ptinrect(ref str_rect lprect,ulong pt_x,ulong pt_y) library "user32.dll"

subroutine sleep(ulong dwmilliseconds) library "kernel32.dll"

function ulong getclientrect(ulong hwnd,ref str_rect lprect) library "user32.dll"

function ulong clienttoscreen(ulong hwnd,ref str_point lppoint) library "user32.dll"

function ulong offsetrect(ref str_rect lprect,ulong pt_x,ulong pt_y) library "user32.dll"

function ulong releasecapture() library "user32.dll"

function ulong sendmessage(ulong hwnd,ulong wmsg,ulong wparam,ref ulong lparam) library "user32.dll" alias for "sendmessagea"

function ulong getdc(ulong hwnd) library "user32.dll"

function ulong deleteobject(ulong hobject) library "gdi32.dll"

function ulong createsolidbrush(ulong crcolor) library "gdi32.dll"

function ulong releasedc(ulong hwnd,ulong hdc) library "user32.dll"

function ulong fillrect(ulong hdc,ref str_rect lprect,ulong hbrush) library "user32.dll"

注:上述api聲明涉及到的結構請查閱msdn或其他技術資料。

3、聲明實例變量(instance variables):

boolean ib_onform = false,ib_display = true,ib_first_display = true,ib_first_hide = true

constant integer wm_mouseleave = 675

constant integer wm_nclbuttondown = 161

constant integer htcaption = 2
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定边县| 柏乡县| 湘潭市| 洛扎县| 虎林市| 蓬溪县| 含山县| 酒泉市| 边坝县| 顺昌县| 西畴县| 陇西县| 洪洞县| 东丰县| 德清县| 开原市| 垦利县| 高要市| 阿荣旗| 修水县| 尉氏县| 德清县| 卢氏县| 永修县| 理塘县| 石家庄市| 麻栗坡县| 历史| 广汉市| 两当县| 安顺市| 会同县| 自治县| 新巴尔虎左旗| 台州市| 桐庐县| 松潘县| 军事| 化隆| 肇东市| 玉环县|