A.D. Tejpal
adtp at airtelmail.in
Tue Jul 5 04:10:09 CDT 2011
Bill, Apparently, in view of special positioning of control in question, you are looking for a solution that is self contained within control's MouseMove event. You could experiment with sample code given below: ' Code in form's module '============================== ' Declarations section Private gX As Single, gY As Single '--------------------------------------------- Private Sub CmdTest_MouseMove( _ Button As Integer, _ Shift As Integer, _ X As Single, Y As Single) With Me.CmdTest Me.CmdTest.Caption = "Test (MM)" If gX <> 0 Then If (X > (0.9 * .Width) And X > gX) _ Or (X < (0.1 * .Width) And _ X < gX) Then Me.CmdTest.Caption = "Test" End If End If If gY <> 0 Then If (Y > (0.9 * .Height) And Y > gY) _ Or (Y < (0.1 * .Height) And _ Y < gY) Then Me.CmdTest.Caption = "Test" End If End If End With gX = X gY = Y End Sub '============================== Normal caption of command button named CmdTest is "Test". When mouse pointer is brought over it, the caption changes to "Test (MM)". As & when the mouse pointer moves away from the control, the caption reverts back to normal, i.e. "Test". Note: (a) MouseMove event fires in rapid-fire style. Values for X and Y returned by this event have a range from 0 upto the width and height (in twips) of the control in question. (b) The multiplying factors of 0.9 and 0.1 used in the sample code could perhaps be fine tuned further (say 0.95 and 0.05) so as to narrow down the twilight zone. However a coarser setting as adopted above, is found conducive to more consistent behavior. This is because a deliberately wild mouse sweep by the user can result in X or Y value getting truncated short of the potential maximum, even though the mouse pointer has moved out. Best wishes, A.D. Tejpal ------------ ----- Original Message ----- From: William Benson (VBACreations.Com) To: 'Access Developers discussion and problem solving' Sent: Monday, July 04, 2011 20:53 Subject: Re: [AccessD] How to tell a button's "air space" is nolonger beinghovered over A.D., Other controls are too near the button's bottom and it's top edge is pretty much as .Top = 0. I have put the code in the other controls already, similar to what you wrote. I was wondering if there was a way like to test the mousemove if the coordinates are exactly on bottom or top or at either side of the button, based on X, Y, or whatever... and if so, the caption is treated as if the mouse were outside it, and if not, use the caption that pertains to the moust being inside. During a normal mousemove operation the user will be headed out or headed into the interior of the button, so -- if on the way out, the last code to execute will be to reset the caption -- if on the way in, the code executing (probably continuously) will be to set the caption appropriate for interior of button But I don't think it is possible to get the event to faithfully fire exactly as the mouse is going over the edge of the button. Thanks a lot, Bill -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of A.D. Tejpal Sent: Monday, July 04, 2011 10:23 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] How to tell a button's "air space" is no longer beinghovered over William, For detecting whether the mouse pointer has moved away from the control in question, you can use the MouseMove event of form section to which the said control belongs, for example: ' Code in form's module '============================= Private Sub Detail_MouseMove( _ Button As Integer, Shift As Integer, _ X As Single, Y As Single) ' <<Your Code>> End Sub '-------------------------------------------- Private Sub FormFooter_MouseMove( _ Button As Integer, Shift As Integer, _ X As Single, Y As Single) ' <<Your Code>> End Sub '-------------------------------------------- Private Sub FormHeader_MouseMove( _ Button As Integer, Shift As Integer, _ X As Single, Y As Single) ' <<Your Code>> End Sub '============================= Best wishes, A.D. Tejpal ------------ ----- Original Message ----- From: William Benson (VBACreations.Com) To: 'Access Developers discussion and problem solving' Sent: Sunday, July 03, 2011 01:23 Subject: [AccessD] How to tell a button's "air space" is no longer beinghovered over I have some code which changes the caption of a button when the user has the ctrl key pressed, set during the mousemove event for the button. I want however, that when the user leaves the "air space" for the button, then the caption reverts - regardless whether they still have shift held. I know I can use use the mousemove event associated with all surrounding controls to reset it, but I would like something more related to the control itself. Is there a method of testing that the user has moved the mouse outside the button's air space? I have a feeling I am going to be out of luck...