其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

PowerBuilder制作IE风格的图标按钮[1]


发布日期:2021年04月10日
 
PowerBuilder制作IE风格的图标按钮[1]
本文介绍在PowerBuilder中实现IE风格的图标按钮的技巧在C++ Builder开发工具中有一种图标按钮(SpeedButton)这种按钮可以在鼠标移入按钮后在图片的周围会出现凸出的边框鼠标移出按钮后边框消失而在PowerBuilder中没有提供这种功能的按钮为了使开发的应用程序界面更丰富我们使用自定义图形控件(Picture)扩展并实现了此功能这种方法设计出的程序简洁实用

实现功能

按钮可以显示四种状态图形

Normal状态

Disabled状态

MouseOver状态(鼠标进入按钮区)

ClickDown状态(鼠标按下)

关键方法

当鼠标进入按钮区域时控件图片改换成MouseOver状态的图片并设置状态信号

鼠标滑入按钮区域后用Windows API函数SetCapture来捕获鼠标输入消息跟蹤鼠标位置

当监测到鼠标滑出按钮区域时用ReleaseCapture函数释放鼠标捕获恢复按钮图片到Normal状态并设置状态信号

改变控件的图片(PictureName)前先用ReleaseCapture释放鼠标捕获然后改变PictureName属性值接着重新调用SetCapture函数因为改变图片后PowerBuilder重新建立了控件窗口窗口的句柄(hWnd)也随之改变了

设计过程

新建User Object 〉选择Visual的Standard类 〉选择Picture

定义全局的或局部的外部函数

// Declare External Functions

function ulong SetCapture

(ulong hwnd) library userdll

function boolean ReleaseCapture

(ulong hwnd) library userdll

function boolean DrawEdge(ulong hdc

ref rect qrc uint edge uint grfFlags)

library userdll

定义结构数据类型

RECT

{

long left

long top

long right

long bottom

}

定义控件共享变量

// Declare Shared Variables

boolean sb_SuppressHoverBorder

[] [] [] []

               

上一篇:PowerBuilder中的几个注册表函数的介绍

下一篇:PowerBuilder制作IE风格的图标按钮[4]