'Globals '**************************************************************** 'Windows API/Global Declarations for :Make Form Transparent. '**************************************************************** Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRECT As RECT) As Long Declare Function GetClientRect Lib "user32" (ByVal hWnd As Long, lpRECT As RECT) As Long Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function ScreenToClient Lib "user32" (ByVal hWnd As Long, lpPoint As POINTAPI) As Long Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Public Const RGN_AND = 1 Public Const RGN_COPY = 5 Public Const RGN_DIFF = 4 Public Const RGN_OR = 2 Public Const RGN_XOR = 3 Type POINTAPI x As Long Y As Long End Type Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type 'Code '**************************************************************** ' Name: Make Form Transparent. ' ' Description:Makes a Form Trans Parent ' By: Kalani COM ' ' Inputs:None ' Returns:None ' Assumes:None ' Side Effects:No Controls are Visible on the Form ' 'Code provided by Planet Source Code(tm) 'as is', without ' warranties as to performance, fitness, merchantability, ' and any other warranty (whether expressed or implied). '**************************************************************** Public Sub MakeTransparent(frm As Form) ' 'This code was takin from a AOL Visual Basic ' 'Message Board. It was submited by: SOOPRcow Dim rctClient As RECT, rctFrame As RECT Dim hClient As Long, hFrame As Long ' '// Grab client area and frame area GetWindowRect frm.hWnd, rctFrame GetClientRect frm.hWnd, rctClient ' '// Convert client coordinates to screen coordinates Dim lpTL As POINTAPI, lpBR As POINTAPI lpTL.x = rctFrame.Left lpTL.Y = rctFrame.Top lpBR.x = rctFrame.Right lpBR.Y = rctFrame.Bottom ScreenToClient frm.hWnd, lpTL ScreenToClient frm.hWnd, lpBR rctFrame.Left = lpTL.x rctFrame.Top = lpTL.Y rctFrame.Right = lpBR.x rctFrame.Bottom = lpBR.Y rctClient.Left = Abs(rctFrame.Left) rctClient.Top = Abs(rctFrame.Top) rctClient.Right = rctClient.Right + Abs(rctFrame.Left) rctClient.Bottom = rctClient.Bottom + Abs(rctFrame.Top) rctFrame.Right = rctFrame.Right + Abs(rctFrame.Left) rctFrame.Bottom = rctFrame.Bottom + Abs(rctFrame.Top) rctFrame.Top = 0 rctFrame.Left = 0 ' '// Convert RECT structures to region handles hClient = CreateRectRgn(rctClient.Left, rctClient.Top, rctClient.Right, rctClient.Bottom) hFrame = CreateRectRgn(rctFrame.Left, rctFrame.Top, rctFrame.Right, rctFrame.Bottom) ' '// Create the new "Transparent" region CombineRgn hFrame, hClient, hFrame, RGN_XOR ' '// Now lock the window's area to this created region SetWindowRgn frm.hWnd, hFrame, True End Sub