一、实现功能
按钮可以显示四种状态图形:
1、Normal状态;
2、Disabled状态;
3、MouseOver状态(鼠标进入按钮区);
4、ClickDown状态(鼠标按下)。
二、关键方法
1、当鼠标进入按钮区域时,控件图片改换成MouseOver状态的图片,并设置状态信号;
2、鼠标滑入按钮区域后用Windows API函数SetCapture来捕获鼠标输入消息,跟踪鼠标位置;
3、当监测到鼠标滑出按钮区域时,用ReleaseCapture函数释放鼠标捕获,恢复按钮图片到Normal状态并设置状态信号;
4、改变控件的图片(PictureName)前,先用ReleaseCapture释放鼠标捕获,然后改变PictureName属性值,接着重新调用SetCapture函数,因为改变图片后PowerBuilder重新建立了控件窗口,窗口的句柄(hWnd)也随之改变了。
三、设计过程
1、新建“User Object” -〉选择Visual的Standard类 -〉选择“Picture”;
2、定义全局的或局部的外部函数:
// Declare External Functions
function ulong SetCapture
(ulong hwnd) library "user32.dll"
function boolean ReleaseCapture
(ulong hwnd) library "user32.dll"
function boolean DrawEdge(ulong hdc,
ref rect qrc, uint edge, uint grfFlags)
|
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容 本站提醒:不要进行人身攻击。谢谢配合。 |