Thread
:
VB6 Form in Foreground for Excel
View Single Post
#
2
Posted to microsoft.public.excel.programming
Chip Pearson
external usenet poster
Posts: 7,247
VB6 Form in Foreground for Excel
Rick,
You can use the SetParent API function to set Excel's main window as the
parent window of your VB6 form. E.g.,
Public Declare Function SetParent Lib "user32" ( _
ByVal hWndChild As Long, _
ByVal hWndNewParent As Long) As Long
Sub SetTheParent()
Dim XLHWnd As Long
XLHWnd = XL.hWnd
SetParent Form1.hWnd, XLHWnd
End Sub
where XL is the reference to the Excel application.
--
Cordially,
Chip Pearson
Microsoft MVP - Excel
www.cpearson.com
"Rick" wrote in message
...
Hi,
I've written a more complex program in VB6 with a single
form, so that I can use it for work in Excel multiple
times. This way, I don't have to use VBA code in the
modules. It works great! I want to thank people who have
helped me here in the past. It's been a part time project
for me over the months - and it's been a lot of fun.
I have one problem. How do I get the VB6 form to stay in
the foreground? With Excel 2000 and better we could write
this with VBA in a module (for example): "frmText.Show
vbModeless" and it worked fine. But now with VB6, I can't
do the same, so that the VB6 form is in the foreground.
I found something interesting on the internet that was
this:
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd
As Long, ByVal hWndInsertAfter As Long, ByVal X As Long,
ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal
wFlags As Long)
Private Sub Form_Activate()
'Set the window position to topmost
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or
SWP_NOSIZE
End Sub
Would this work for a VB6 form to keep it in the
foreground? Is there another better way? I appreciate
the help. I thought I would run it by a few of you before
I started experimenting with this code and others that I
might find later.
Thanks, Rick
Reply With Quote
Chip Pearson
View Public Profile
Find all posts by Chip Pearson