Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hrgn As Long, ByVal bRedraw As Boolean) As Long
Public Function CreateShapeWindow(ByVal hWnd As Long, _
ByRef alData() As Long, _
Optional ByVal eType As EnumShapeWindow = eswRect) _
As Boolean
Dim lHandle As Long
Dim lReturn As Long
Select Case eType
Case EnumShapeWindow.eswRect
lHandle = CreateRectRgn(alData(0), alData(1), alData(2), alData(3))
Case EnumShapeWindow.eswRoundRect
lHandle = CreateRoundRectRgn(alData(0), alData(1), alData(2), alData(3), alData(4), alData(5))
Case EnumShapeWindow.eswPolygon
Case EnumShapeWindow.eswElliptic
lHandle = CreateEllipticRgn(alData(0), alData(1), alData(2), alData(3))
End Select
lReturn = SetWindowRgn(hWnd, lHandle, True)
End Function
Form_laod: Dim alData(5) As Long
With Screen
lpx = .TwipsPerPixelX
lpy = .TwipsPerPixelY
End With
With Me
alData(0) = 1
alData(1) = 1
alData(2) = .Width / lpx - 1
alData(3) = .Height / lpy - 1
alData(4) = 7
alData(5) = 7
End With
CreateShapeWindow Me.hWnd, alData, eswRoundRect
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hrgn As Long, ByVal bRedraw As Boolean) As Long
Public Function CreateShapeWindow(ByVal hWnd As Long, _
ByRef alData() As Long, _
Optional ByVal eType As EnumShapeWindow = eswRect) _
As Boolean
Dim lHandle As Long
Dim lReturn As Long
Select Case eType
Case EnumShapeWindow.eswRect
lHandle = CreateRectRgn(alData(0), alData(1), alData(2), alData(3))
Case EnumShapeWindow.eswRoundRect
lHandle = CreateRoundRectRgn(alData(0), alData(1), alData(2), alData(3), alData(4), alData(5))
Case EnumShapeWindow.eswPolygon
Case EnumShapeWindow.eswElliptic
lHandle = CreateEllipticRgn(alData(0), alData(1), alData(2), alData(3))
End Select
lReturn = SetWindowRgn(hWnd, lHandle, True)
End Function
Form_laod: Dim alData(5) As Long
With Screen
lpx = .TwipsPerPixelX
lpy = .TwipsPerPixelY
End With
With Me
alData(0) = 1
alData(1) = 1
alData(2) = .Width / lpx - 1
alData(3) = .Height / lpy - 1
alData(4) = 7
alData(5) = 7
End With
CreateShapeWindow Me.hWnd, alData, eswRoundRect
用SetWindowRgn设置窗口的显示区域SetWindowRgn VB声明
Declare Function SetWindowRgn Lib "user32" Alias "SetWindowRgn" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
说明
这是那些很难有人注意到的对编程者来说是个巨大的宝藏的隐含的API函数中的一个。本函数允许您改变窗口的区域。
通常所有窗口都是矩形的——窗口一旦存在就含有一个矩形区域。本函数允许您放弃该区域。这意味着您可以创建圆的、星形的窗口,也可以将它分为两个或许多部分——实际上可以是任何形状
返回值
Long,执行成功为非零值,失败为0
参数表
参数 类型及说明
hWnd Long,将设置其区域的窗口
hRgn Long,将设置的区域的句柄,一旦设置了该区域,就不能使用或修改该区域句柄,也不要删除它
bRedraw Boolean,若为TRUE,则立即重画窗口
注解
为区域指定的所有坐标都以窗口坐标(不是客户坐标)表示,它们以整个窗口(包括标题栏和边框)的左上角为起点
尤其是DIB的,可否告诉我下在地址?或不大的话,可否发给我
谢谢!![email protected]
343KB
Win32 API帮助文件(中文版)
'☆☆☆只有函数说明☆☆☆
http://sd.onlinedown.net/Snowswinapi.htm
最新1.2版
超人气的编程工具,一本实用的教科书,一个几万人使用的共享软件,为什么不下载试试,API尽情掌屋在你的手中。
'☆☆☆函数说明为主☆☆☆
http://www.onlinedown.net/foxapi.htm
系统程序|编程工具 本站首页
软件名称:FoxAPI中文浏览器
整理日期:2002.1.30
最新版本:1.0
文件大小:1073KB
软件授权:免费软件
使用平台:Win9x/Me/NT/2000
发布公司:Home Page
软件简介:
本API浏览器文件由DeityFox 个人整理后出版,内容全摘自网络。版权归实际作者所有。为了让网友们能更好的阅读和管理Windows API 函数, 于是我为大家将网上的资料整理成数据库文件,并写了这个API浏览器。让查阅API 函数变的更简单,容易,也更有效。软件功能:可以完全取代VB自带的API文本浏览器,并能语法高亮显示。软件中所有函数原型均取自于Win32api.txt。并且提供1700多个函数的详细的中文说明,包括说明、返回值、参数表。更重要的一点是提供800多个真正完整的VB实例供你参考。
'☆☆☆函数说明为主☆☆☆
http://www.dapha.net/down/list.asp?id=1
3981KB
它是一套学习Api函数不可缺少的软件,内置api流览器
'☆☆☆API声明为主☆☆☆
ByRef alData() As Long, _
Optional ByVal eType As EnumShapeWindow = eswRect) _
As Boolean
显示用户定义类型未定义?
eswRect
eswRoundRect
eswPolygon
eswElliptic
End Enum
x as long
y as long
end type
x as long
y as long
end type
提示:在私有对象模块中不能定义public的用户定义类型。
怎么办,兄弟?
你要么把它原封不动的放到一个module里面
要么在Type的前面加上private
private enum 和用户定义类型不能作为参数、公共过程的返回类型、公共数据成员或公共用户定义类型的字段使用。
我按你说的工程引入了module1,代码是你的全部包括后来的定义。
怎么在form中引用呢?不好意思,我还没有真正事业过module。
Private Type pointapi
x As Long
y As Long
End Type就出现上面的提示。