Userform without title or border...

S

SpeeD

Hi guys

I´ve seen the following code in the a forum and copied to my workbook.The
problemis that i need to have a userform without borders not only without the
title bar.

Can anyone help me???

Option Explicit

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

Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function DrawMenuBar Lib "user32" ( _
ByVal hwnd As Long) As Long



Sub RemoveCaption(objForm As Object)

Dim lStyle As Long
Dim hMenu As Long
Dim mhWndForm As Long


If Val(Application.Version) < 9 Then
mhWndForm = FindWindow("ThunderXFrame", objForm.Caption) 'XL97
Else
mhWndForm = FindWindow("ThunderDFrame", objForm.Caption) 'XL2000+
End If
'lStyle = GetWindowLong(mhWndForm, -16)
lStyle = GetWindowLong(mhWndForm, -16)
lStyle = lStyle And Not &HC00000


SetWindowLong mhWndForm, -16, lStyle
DrawMenuBar mhWndForm

End Sub
 
P

Peter T

That should remove the border, or are you talking about changing the raised
effect to flat.

Regards,
Peter T
 
R

Rick Rothstein

That code removed both the title bar and the borders for me. Are you saying
that when you ran the code, it left the borders all around the UserForm?
 
S

SpeeD

Hi Peter.

The problem is that a white(gray) line appears around the Box. I thinks it´s
the border.

Im REALLY over my head with this code....

Thnsk
SpeeD
 
P

Peter T

I guess you are talking about the raised effect as I queried earlier


Option Explicit
' for testing drop a commandbutton on the form
' named CommandButton1, so you can close the form!

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

Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function DrawMenuBar Lib "user32" ( _
ByVal hwnd As Long) As Long

Private Const GWL_STYLE As Long = -16
Private Const WS_CAPTION As Long = &HC00000

Private Const GWL_EXSTYLE As Long = -20
Private Const WS_EX_APPWINDOW As Long = &H40000

Private Sub UserForm_Initialize()

Dim lStyle As Long
Dim hMenu As Long
Dim mhWndForm As Long

If Val(Application.Version) < 9 Then
mhWndForm = FindWindow("ThunderXFrame", Me.Caption) 'XL97
Else
mhWndForm = FindWindow("ThunderDFrame", Me.Caption) 'XL2000+
End If

lStyle = GetWindowLong(mhWndForm, GWL_STYLE)
lStyle = lStyle And Not &HC00000

SetWindowLong mhWndForm, GWL_STYLE, lStyle

SetWindowLong mhWndForm, GWL_EXSTYLE, WS_EX_APPWINDOW

DrawMenuBar mhWndForm

End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Regards,
Peter T
 
S

SpeeD

Hi to all

I have to make a correction. After a careful look it´s a raise effect.
How can i remove this?

SpeeD
 
P

Peter T

The slightly revised code I posted should remove it, I take it you didn't
try it.

Regards,
Peter T
 
S

SpeeD

Hi Peter!

It works great! sorry about this but i didn't realize that you.ve changed
the code earlier.

Thanks a lot!!

SpeeD
 

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

Top