View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Klaus Heinrich Klaus Heinrich is offline
external usenet poster
 
Posts: 7
Default Userform with logo and without closebtn

Hi folks,

I am not an VBA expert and found some code snips in the net.
First one hides the close button in user forms, second one sets
individual logo in the menu bar of the user form. Maybe any
one can help me combine this code snips ot at least help to
understand, what the coding does:

The declaration of lib "user32" is the same in both cases.
Only difference:

Private Const GWL_STYLE As Long = -16
Private Const WS_SYSMENU As Long = &H80000

Private hWndForm As Long
Private bCloseBtn As Boolean

Private Sub UserForm_Initialize()
' Find handle depending on Excel Version

If Val(Application.Version) = 9 Then
hWndForm = FindWindow("ThunderDFrame", Me.Caption)
Else
hWndForm = FindWindow("ThunderXFrame", Me.Caption)
End If

bCloseBtn = False
SetUserFormStyle <-- this is the sub which hides the close button
End Sub

Private Sub SetUserFormStyle()
' Hide close button in userform
Dim frmStyle As Long

If hWndForm = 0 Then Exit Sub

frmStyle = GetWindowLong(hWndForm, GWL_STYLE)

If bCloseBtn Then
frmStyle = frmStyle Or WS_SYSMENU
Else
frmStyle = frmStyle And Not WS_SYSMENU
End If

SetWindowLong hWndForm, GWL_STYLE, frmStyle
DrawMenuBar hWndForm
End Sub

Until here it works fine. Now I want to add some lines as follows:

hIcon = Image3.Picture
SendMessage hWndForm, &H80, True, hIcon
SendMessage hWndForm, &H80, False, hIcon
frm = GetWindowLong(hWndForm, -20)
frm = frm And Not &H1
SetWindowLong hWndForm, -20, frm

DrawMenuBar hWndForm

I do not understand the meaning of the lines, but I am sure
that some commands overwrite the other.
Is there any way to combine this snips ?

Thanks in advandced

Regards

Klaus