Advertisement
7_2009-2012 Custom Controls/ Forms/ Menus #217329

Make Form Transparent.

Makes a Form Trans Parent

AI

AI Summary: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Source Code
original-source
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
Original Comments (3)
Recovered from Wayback Machine