Home |
Search |
Today's Posts |
#18
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
gary,
Sorry, forgot I had changed the 2 x labels to 2 x frames. Also, make sure the frame containing the browser is behind the 2 frames; right-click on the frame's border and "Send Backward". "gary" wrote in message ... Nick, Yes, I even added "Frame1.enabled = false" to no avail. The cross hairs go behind the frame. Any ideas ? "NickHK" wrote: Gary, That works for me. Sure you have Frame1.Enabled=False ? You can have a button to toggle the .Enabled state of the frame. NickHK "gary" wrote in message ... Nick, I tried what you suggested (Browser inside Frame that is disabled) but no difference. The cross hairs do not cover the frame either. The user might want to get control of the browser which I could accomodate with a button I could add on the UserForm. Gary "NickHK" wrote: Gary, I'm no expert in this (or Excel for that matter..), but this now sounds like it has little to do Excel as such. Whilst you can reparent IE to your userform, I see no way to respond to mouse movements (without sub-classing or something). Also, how do you intend to draw your cross hairs ? I'm not clear on why you need to do this. You say "so the user can more accurately get values that are displayed along the borders". So what do "get values" mean ? NickHK "gary" wrote in message ... Nick, The IE browser is completely separate from the User Form. The code to control the browser resides on the user form which is kicked off from excel after the user has set several parameters. So besides needing to put cross hairs on the IE browser, the cross hairs need to be responsive to mouse movements on the browser. Gay "NickHK" wrote: Gary, But you are attempting to draw cross hairs on IE that is completely separated from your userform and Excel ? Or you do have a web browser control on your userform ? NickHK "gary" wrote in message ... Nick, The user form contains several controls to allow the user to specify what charts he wants to see in the IE window. Once I have the inputs I attempt to create an IE browser window and go to the URL that will get the desired info. I would like the cursor to change to cross hairs while it is over the IE window so the user can more accurately get values that are displayed along the borders. I hope that makes sense. Thanks for asking, Gary "NickHK" wrote: Gary, You've lost me now. You are creating an instance of Internet Explorer at run time, but I do not see the connection between that and the userform. You can place a web browser on a userform using the "Microsoft web Browser" control. You then want to put cross hairs over that ? Is that what you are after ? NickHK "gary" wrote in message ... Hi Nick, Your solution is very elegant. All I had to add was to set the label border style to 1 (single line) so I could see the lines. It does exactly what I asked. (Single one). What I am actually trying to do is add cross hairs to an IE object set with the following code. The Addlabel dies at runtime with "Run time error Invalid class string" which I think is due to the " ie.label.lblHoriz" not being the correct way to add a label control to the IE object. I don't know what would be correct. Also I don't know how to make the correct event handler for the mouse move event while the mouse is on the IE form. Any ideas? Dim ie as Object Sub Addlabel(strControl As String, intLeft As Integer, intTop As Integer, intWidth As Integer, intHeight As Integer, strCaption As String) Dim mycmd As Control Set mycmd = Controls.Add(strControl) mycmd.Left = intLeft mycmd.Top = intTop mycmd.Width = intWidth mycmd.Height = intHeight mycmd.BorderStyle = 1 If strCaption < "" Then mycmd.Caption = strCaption End If mycmd.Visible = True End Sub ' ' not sure about this ' Private Sub ie_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) lblHoriz.Top = Y lblVert.Left = X End Sub Private Sub UserForm_Initialize() With lblHoriz .Height = 1 .Left = 0 .Width = Me.Width End With With lblVert .Width = 1 .Top = 0 .Height = Me.Height End With set ie = CreateObject("InternetExplorer.Application") ie.AddressBar = False ie.MenuBar = False ie.Toolbar = False ie.Width = 600 ie.Height = 750 ie.Left = 0 ie.Top = 0 ie.navigate "www.yahoo.com" With ie While Not .readyState = READYSTATE_COMPLETE DoEvents Wend ' I can control scroll bars with: .document.parentWindow.Scroll 100, 200 .Visible = True 'Add cross hairs here --NOT CORRECT Call UserForm1.Addlabel( "ie.label.lblHoriz",2, 10, 175, 20, "") Call UserForm1.Addlabel( " ie.label.lblVert",2, 20, 175, 20, "") .end with "NickHK" wrote: Gary, On a userform with 2 labels, lblHoriz and lblVert: Private Sub UserForm_Initialize() With lblHoriz .Height = 1 .Left = 0 .Width = Me.Width End With With lblVert .Width = 1 .Top = 0 .Height = Me.Height End With End Sub Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) lblHoriz.Top = Y lblVert.Left = X End Sub NickHK "gary" wrote in message ... I need the ability to allow the user to change the cursor to a cross hair that covers the entire form that detected the mouse event. This is needed so user can read values along sides and bottom of form as he/she moves mouse over the form. I have been unable to find any vba code to do this. Gary |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
cross hair | Excel Discussion (Misc queries) | |||
Row Column Cross Hair | Excel Worksheet Functions | |||
How do I change the cursor from cross to arrow | Excel Discussion (Misc queries) | |||
HOW DO I CHANGE THE EXCEL CURSOR TO AN ARROW FROM A CROSS ? | Excel Worksheet Functions | |||
Can I change the "white cross" cursor in Excel to another cursor? | Excel Discussion (Misc queries) |