中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
浅谈如何利用PB实现仿QQ自动显示/隐藏窗口(一)(原创)
作者:未知 时间:2004-06-25 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无

作者: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

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有