您的位置:首页 > 其它

桌面上的街舞之基础篇(09-04-29)

2009-05-18 07:42 381 查看
首先说下这是个什么东西吧,就是一个类似于qq宠物的东东,能在你的桌面上蹦啊蹦啊蹦啊……的那么一个东东。
先给你看几个效果图:

当然了,完成后可是动态的哦。
好了,废话不多说。先给你打个基础。
知道四个API:GetWindowLong,SetWindowLong, SetLayeredWindowAttributes,SetWindowPos
先说SetWindowPos吧。
函数原型:SetWindowPos(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
作用是让窗体前置。
给个例子:
Private Const HWND_TOPMOST = -1
Private Sub Form_load()
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, 3
End Sub

再说GetWindowLong:
函数原型: GetWindowLong (ByVal hwnd As Long, ByVal nIndex As Long) As Long
作用是从指定窗口中返回信息。获得指定窗口的结构数据信息,什么叫"窗口的结构数据信息"?就是1个窗口的诸方面情况吧,象人有姓名性别年龄等一样,窗口有"扩展样式(包含标题栏,有标题栏缩小、无标题栏等的组合值)","样式(包含滚动条、系统菜单、边框等可设置)","父窗口","子窗口","窗口函数"等诸多方面,见下面nIndex参数值。这些方面的内容(每1方面只能有1个当前值)就构成了窗口的结构信息。
还有就是SetWindowLong:
这个是和GetWindowLong合用的。
函数原型: SetWindowLong (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
作用就是在窗口结构中未指定的窗口设置信息。常用此函数来动态地设置窗口的风格(如样式,滚动条等等)。即不在属性窗口中设置。而在API中设置。
最后一个SetLayeredWindowAttributes:
这是设置窗体透明的函数。
SetLayeredWindowAttributes (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Hwnd:句柄
crKey:颜色值
bAlpha:透明度取值区间【0~255】
dwFlags:透明方式

其中透明方式有两种:①、取LWA_ALPHA,此时crKey参数无效。bAlpha有效。
②、取LWA_CLORKEY,此时窗体中所有颜色值为crKey的地方将为透明(透明度取决于bAlpha)。
使用前提是:首先要是窗体有WS_EX_LAYERED扩展属性。(用SetWindowLong就可以)
未完待续……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: