您的位置:首页 > 编程语言 > Qt开发

调用Windows的API,在QTP中实现高亮对象的方法

2010-08-25 11:29 567 查看
在QTP的帮助文档中,展示了如何调用Windows自身的API来实现更灵活的操作。

以下的方法实现在屏幕上高亮一个矩形区域,来突出被测对象的位置。
' Declare necessary APIs

Extern.Declare micHwnd, "GetDesktopWindow", "User32.DLL", "GetDesktopWindow"

Extern.Declare micULong, "GetWindowDC", "User32.DLL", "GetWindowDC", micHwnd

Extern.Declare micInteger, "ReleaseDC", "User32.DLL", "ReleaseDC", micHwnd, micULong

Extern.Declare micULong, "CreatePen", "Gdi32.DLL", "CreatePen", micInteger, micInteger, micDword

Extern.Declare micInteger, "SetROP2", "Gdi32.DLL", "SetROP2", micULong, micInteger

Extern.Declare micULong, "SelectObject", "Gdi32.DLL", "SelectObject", micULong, micULong

Extern.Declare micULong, "DeleteObject", "Gdi32.DLL", "DeleteObject", micULong

Extern.Declare micULong, "GetStockObject", "Gdi32.DLL", "GetStockObject", micInteger

Extern.Declare micULong, "Rectangle", "Gdi32.DLL", "Rectangle", micULong, micInteger, micInteger, micInteger, micInteger

Function HighlightRect (X, Y, W, H, Times)

' Get the Desktop DC

hDC = Extern.GetWindowDC (Extern.GetDesktopWindow)

' Create a three pixel wide pen

hPen = Extern.CreatePen (6, 3, RGB(0, 0, 0)) ' PS_INSIDEFRAME, 3 , RGB(0, 0, 0)

Extern.SetROP2 hDC, 6 ' hDC, R2_NOT

Extern.SelectObject hDC, hPen

' Use an empty fill

Extern.SelectObject hDC, Extern.GetStockObject (5) ' NULL_BRUSH

' Do the highlight

For i = 0 to Times * 2 + 1

Extern.Rectangle hDC, X, Y, X + W, Y + H

wait 0, 50

Next

' CleanUp

Extern.ReleaseDC Extern.GetDesktopWindow, hDC

Extern.DeleteObject hPen

End Function


QTP本身也封装了对象的Highlight方法,可以通过object.Highlight 来调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: