Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, _
ByVal y As Long, ByVal nWidth As Long, B yVal nHeight As Long, ByVal hSrcDC As Lo ng, _
ByVal xSrc As Long, ByVal ySrc As Long, B yVal dwRop As Long) As Long
Declare Function GetDC Lib "user32" (By Val hwnd As Long) As Long
Public RetValue As Long
Public Sub TileWindow(WindowObject A s Object, p As PictureBox)
Dim j As Integer, i As Integer
Dim x As Integer
Dim WhDC As Long
' This object can be any VB standard obje ct with an hWnd property
WhDC = GetDC(WindowObject.hwnd)
For j = 0 To WindowObject.Height Step p. ScaleHeight
For i = 0 To WindowObject.Width Step p. ScaleWidth
x = BitBlt(WhDC, i, j, p.ScaleWidth, p.Scal eHeight, p.hDC, 0, 0, vbSrcCopy)
Next
Next
End Sub
4、添加一个图片框控件(PICUTRE1),设置其SCALEMODE属性=3-PIXEL,AUTOREDRAW属性=TURE,AUTOSIZE属性=TURE。在PICTURE属性中选择一幅图。
5、添加以下代码到FORM1的PAINT 事件:
Private Sub Form_Paint()
TileWindow Me, Picture1
End Sub
6、保存工程项目
7、运行程序。当显示出窗体后,可以看到图片“平铺”到整个窗体。
注意:尽管这种方法显示能够在任何支持hWnd属性的控件上平铺图片,但仍必须留意哪些控件支持PAINT方法********************************* **********
制作拖盘
Public Const MAX_TOOLTIP As Integer = 6 4
Public Const NIF_ICON = &H2
Public Const NIF_MESSAGE = &H1 Public Const NIF_TIP = &H4
Public Const NIM_ADD = &H0
Public Const NIM_DELETE = &H2
Public Const WM_MOUSEMOVE = &H20 0
Public Const WM_LBUTTONDOWN = &H 201
Public Const WM_LBUTTONUP = &H202 Public Const WM_LBUTTONDBLCLK = &H 203
Public Const WM_RBUTTONDOWN = &H 204
Public Const WM_RBUTTONUP = &H205 Public Const WM_RBUTTONDBLCLK = &H 206
Public Const SW_RESTORE = 9
Public Const SW_HIDE = 0
Public nfIconData As NOTIFYICONDATA Public Type NOTIFYICONDATA
cbSize As Long
hWnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * MAX_TOOLTIP
End Type
Public Declare Function ShowWindow Li b "user32" (ByVal hWnd As Long, ByVal n CmdShow As Long) As Long
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA"