国产探花免费观看_亚洲丰满少妇自慰呻吟_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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富平县| 嘉黎县| 龙胜| 巴中市| 黄骅市| 安仁县| 闽侯县| 共和县| 咸丰县| 平和县| 宜兰县| 札达县| 甘洛县| 固阳县| 苍山县| 景德镇市| 尼玛县| 威信县| 保亭| 志丹县| 荆州市| 都兰县| 通化市| 兴山县| 深圳市| 博兴县| 通榆县| 上饶县| 基隆市| 乐至县| 贵定县| 安平县| 奇台县| 沙雅县| 镇坪县| 靖远县| 晋中市| 奎屯市| 星座| 阜宁县| 敦化市|