Andy Lacey
andy at minstersystems.co.uk
Tue Jun 22 08:24:17 CDT 2004
Same on A97. Forgot to mention it. -- Andy Lacey http://www.minstersystems.co.uk --------- Original Message -------- From: Access Developers discussion and problem solving <accessd at databaseadvisors.com> To: Access Developers discussion and problem solving <accessd at databaseadvisors.com> Subject: Re: [AccessD] Just for fun! Playing With Regions! Date: 22/06/04 13:21 > > I had to change the statement > > HoleOutForm Application.hWndAccessApplication > > to > > HoleOutForm Application.hWndAccessApp > > to make it work on my A2K. > > Rocky Smolin > Beach Access Software > http://www.e-z-mrp.com > > > ----- Original Message ----- > From: "Paul Rodgers" <Paul.Rogers at SummitMedia.co.uk> > To: "'Access Developers discussion and problem solving'" > <accessd at databaseadvisors.com> > Sent: Tuesday, June 22, 2004 5:41 AM > Subject: RE: [AccessD] Just for fun! Playing With Regions! > > > > Hi Drew > > > > Looks really interesting, but I must have spoilt my Acess2k with my own > > very basic work, because it sees this as too sophisticated. > > > > Do you happen to have it zipped up anywhere where I could get to look at > it > > without this mutiny please? > > > > All the best > > > > paul > > > > > > -----Original Message----- > > From: Mitsules, Mark S. (Newport News) [mailto:Mark.Mitsules at ngc.com] > > Sent: Tuesday, June 22, 2004 10:58 AM > > To: 'Access Developers discussion and problem solving' > > Subject: RE: [AccessD] Just for fun! Playing With Regions! > > > > > > Drew, > > > > Excellent. The dynamic resizing effect is pretty cool. This reminds me > of > > an old Access97 demo I have (but never used in production) called > > ShapedForm.mdb. IIRC it used a lot of the same API calls. > > Hmmmm...combining the two approaches...might make for an interesting > > diversion some day. > > > > Mark > > > > > > > > -----Original Message----- > > From: DWUTKA at marlow.com [mailto:DWUTKA at marlow.com] > > Sent: Monday, June 21, 2004 5:32 PM > > To: AccessD at databaseadvisors.com > > Subject: [AccessD] Just for fun! Playing With Regions! > > > > > > Okay, here's a little code I whipped up for a friend. > > > > Just put this into a module (watch for word wrap): > > > > Option Compare Database > > Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, > > ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long > > Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) > As > > Long > > Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, > > lpRect As RECT) 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 CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, > > ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode 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 Type RECT > > Left As Long > > Top As Long > > Right As Long > > Bottom As Long > > End Type > > Private Const RGN_XOR = 3 > > Function HoleOutForm(ByVal intHwnd As Long) > > Dim X As Long > > Dim rt As RECT > > Dim rtCircle As RECT > > Dim dwReturn As Long > > Dim InitialRegion As Long > > Dim i As Long > > Dim intMax As Long > > dwReturn = GetWindowRect(intHwnd, rt) > > rt.Bottom = rt.Bottom - rt.Top > > rt.Top = 0 > > rt.Right = rt.Right - rt.Left > > rt.Left = 0 > > InitialRegion = CreateRectRgn(rt.Left, rt.Top, rt.Right, rt.Bottom) > > rtCircle.Bottom = ((rt.Bottom - rt.Top) / 2) + rt.Top + 1 > > rtCircle.Top = ((rt.Bottom - rt.Top) / 2) + rt.Top - 1 > > rtCircle.Right = ((rt.Right - rt.Left) / 2) + rt.Left + 1 > > rtCircle.Left = ((rt.Right - rt.Left) / 2) + rt.Left - 1 > > If rt.Bottom > rt.Right Then > > intMax = rt.Bottom > > Else > > intMax = rt.Right > > End If > > For i = 1 To intMax > > X = CreateEllipticRgn(rtCircle.Left, rtCircle.Top, rtCircle.Right, > > rtCircle.Bottom) > > InitialRegion = CreateRectRgn(rt.Left, rt.Top, rt.Right, rt.Bottom) > > dwReturn = CombineRgn(InitialRegion, InitialRegion, X, RGN_XOR) > > SetMainWindowRegion InitialRegion, intHwnd > > rtCircle.Bottom = rtCircle.Bottom + 1 > > rtCircle.Top = rtCircle.Top - 1 > > rtCircle.Left = rtCircle.Left - 1 > > rtCircle.Right = rtCircle.Right + 1 > > DeleteObject X > > DeleteObject InitialRegion > > Next i > > DeleteObject X > > DeleteObject InitialRegion > > End Function > > Private Function SetMainWindowRegion(cRgn As Long, intHwnd As Long) > > Dim dwReturn As Long > > dwReturn = SetWindowRgn(intHwnd, cRgn, True) > > End Function > > > > > > Now, create a form, and put the following behind a command button: > > > > HoleOutForm Me.Hwnd > > DoCmd.Close acForm, Me.Name > > > > Then put a second button on the form, and put this code behind it: > > > > HoleOutForm Application.hWndAccessApplication > > DoCmd.Quit > > > > Save the form, and try out the buttons. > > > > Enjoy! > > > > Drew > > -- > > _______________________________________________ > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > -- > > _______________________________________________ > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > _______________________________________________ > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > -- > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > > > ________________________________________________ Message sent using UebiMiau 2.7.2