Heenan, Lambert
Lambert.Heenan at AIG.com
Mon Mar 10 15:11:00 CST 2003
Suggest that both the Treeview control and the listbox need to have a Mouse_Move event that will set the mouse point to the standard one - perhaps even the Form's detail, header and footer sections too. > -----Original Message----- > From: Bruce Bruen [SMTP:bbruen at bigpond.com] > Sent: Monday, March 10, 2003 3:59 PM > To: AccessD > Subject: [AccessD] Emulating a splitter control > > Goodmorning list! > > I am trying to emulate the standard splitter control - treeview on the > left, listview on the right and a rectangle between to act as a grabber > bar. > > The effect works OK in the main but the mousepointer is giving me grief. > If I move the cursor off the rectangle either too quickly or off the top > into the header, it remains as a left-right arrow and doesn't revert to > a normal pointer. > > Has anyone got any ideas on this? The entire code follows - > > Dim boolDragOn As Boolean > Dim minsize As Integer > Dim maxsize As Integer > Dim intheight As Integer > Dim intwidth As Integer > > Const initFormWidth = 20 > Const initFormHeight = 10 > Const initSplitRatio = 0.2 > > Private Sub Form_Close() > Screen.MousePointer = 0 > End Sub > > Private Sub Form_Deactivate() > Screen.MousePointer = 0 > End Sub > > Private Sub Form_LostFocus() > Screen.MousePointer = 0 > End Sub > > Private Sub Form_Open(Cancel As Integer) > > intwidth = 567 * initFormWidth '567 twips per cm multiplied by > cm width > intheight = 567 * initFormHeight '567 twips per cm mulitplied by > cm height > Me.trvMain.Left = 0 > Me.trvMain.Top = 0 > Me.splitbar.Left = 0 > Me.splitbar.Top = 0 > Me.lvwMain.Left = 0 > Me.lvwMain.Top = 0 > > Me.Width = intwidth > Me.Detail.Height = intheight > Me.trvMain.Height = intheight > Me.lvwMain.Height = intheight > Me.splitbar.Height = intheight > > Me.trvMain.Width = (intwidth - 66) * initSplitRatio > > Me.splitbar.Left = Me.trvMain.Width + 1 > Me.splitbar.Width = 64 > > Me.lvwMain.Left = Me.splitbar.Left + Me.splitbar.Width + 1 > Me.lvwMain.Width = Me.Width - (Me.trvMain.Width + 64) > > ' Me.Move 300, 300, Me.Width, Me.Detail.Height > DoCmd.RunCommand acCmdSizeToFitForm > > minsize = 300 > maxsize = 300 > > End Sub > > Private Sub Form_Resize() > Dim ctl As Control > > intheight = Me.InsideHeight - Me.FormHeader.Height - > Me.FormFooter.Height > For Each ctl In Me.Detail.Controls > ctl.Height = bMax(intheight, 0) > Next ctl > Me.Detail.Height = bMax(intheight, 0) > > Me.lvwMain.Width = bMax(Me.InsideWidth - Me.trvMain.Width - 364, > 100) > intwidth = Me.trvMain.Width + Me.splitbar.Width + Me.lvwMain.Width + > 2 > > Me.Width = intwidth > > End Sub > > Private Sub splitbar_MouseDown(Button As Integer, Shift As Integer, X As > Single, Y As Single) > boolDragOn = True > Me.splitbar.BackColor = 5348410 > End Sub > > Private Sub splitbar_MouseMove(Button As Integer, Shift As Integer, X As > Single, Y As Single) > '==================TRYING TO RESET THE POINTER HERE============ > If X > 0 And X < 35 Then > Screen.MousePointer = 9 > Else > Screen.MousePointer = 0 > End If > '============================================================= > If boolDragOn Then > If (Me.trvMain.Width + X) > minsize _ > And (Me.lvwMain.Width - X) > maxsize Then > Me.splitbar.Left = Me.splitbar.Left + X > Me.trvMain.Width = Me.trvMain.Width + X > If X < 0 Then > Me.lvwMain.Left = Me.lvwMain.Left + X > Me.lvwMain.Width = Me.lvwMain.Width - X > Else > Me.lvwMain.Width = Me.lvwMain.Width - X > Me.lvwMain.Left = Me.lvwMain.Left + X > End If > Else > X = 0 > End If > End If > > End Sub > > Private Sub splitbar_MouseUp(Button As Integer, Shift As Integer, X As > Single, Y As Single) > boolDragOn = False > Me.splitbar.BackColor = -2147483633 > Screen.MousePointer = 0 > End Sub > > Public Function bMax(v1, v2) As Variant > If v1 > v2 Then > bMax = v1 > Else > bMax = v2 > End If > End Function > > > > Thanks in advance > Bruce > > --- > Outgoing mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.445 / Virus Database: 250 - Release Date: 21/01/2003 > > > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com