Excel97 Userform to be system modal/equivalent

  • Thread starter Thread starter George J
  • Start date Start date
G

George J

I have done a bit of research online, but it seems that
setsysmodalwindow is not supported in 32bit systems, only
16bit so i can't use that.

I am ok with basic coding, but after that i don't have
much of a clue so if you could tell me what the code is
trying to do rather than what i think it is doing will be
a big help.

I understand that the xl97 userforms are modal, but you
can make use of a bug to make them modeless within the
application; but i am wanting the focus brought back to
the userform if another application is selected. (Forcing
the user to shut down the userform before doing anything
else)

I want to watch the userform's LostFocus event and use a
timer to continually check the form and restore if
required. The timer i can probably manage, but the
LostFocus has me, well - lost.

Very rough coding of what i have so far. (Not sure if
hWnd is available in excel97 so i have been struggling
with that also)


Private Declare Function SetActiveWindow Lib "user32.dll"
(ByVal gj As Long) As Long

Private Declare Function FindWindow Lib "user32"
Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As
String) As Long

Private Declare Function GetActiveWindow Lib "user32" ()
As Long

Private Sub Userform_LostFocus()
Dim gj As Long
Dim WinSelected as long
gj = FindWindow("ThunderXFrame", UserForm1.Caption)
WinSelected = GetActiveWindow()
On Error Resume Next
If Not WinSelected = gj Then
SetActiveWindow gj

End If
End Sub

As you can see, i need some serious help.
All comments welcome.
thanks
George
 
A userform doesn't have a lostfocus event in xl97 to the best of my
knowledge.

there is no hwnd property in xl97
 
Well that would explain how i couldn't find any info on it
at least.

Any suggestions on a way i might be able to do something
along these lines??

thanks
George
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top