Creating Minimise and Maximise functions

Audiojoe

Active Member
Joined
Feb 20, 2002
Messages
285
Is there any way to add minimise and maximise buttons on to a form as my form takes up too much of the screen and I need to be able to minimise and maximise it whenever I like

Can anyone help?
 

Excel Facts

Formula for Yesterday
Name Manager, New Name. Yesterday =TODAY()-1. OK. Then, use =YESTERDAY in any cell. Tomorrow could be =TODAY()+1.
I know of a way to add minimise and maximise buttons. However, when you minimise it minimises Excel and not just the form. Would this be useful to you? Maximise still works great.

It will take me a while to dig out the code, that's why I ask.
 
Upvote 0
OK put this code into a standard module:<pre>

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 Const GWL_STYLE As Long = (-16) 'The offset of a window's style
Private Const WS_SYSMENU As Long = &H80000 'Style to add a system menu
Private Const WS_MINIMIZEBOX As Long = &H20000 'Style to add a Minimize box on the title bar
Private Const WS_MAXIMIZEBOX As Long = &H10000 'Style to add a Maximize box to the title bar

Public Sub MinMax(sCaption As String)

Dim iStyle As Long

'Get handle to userform
If Val(Application.Version)< 9 Then
hWndForm = FindWindow("ThunderXFrame", sCaption) 'XL97
Else
hWndForm = FindWindow("ThunderDFrame", sCaption) 'XL2000
End If

'Get the basic window styles
iStyle = GetWindowLong(hWndForm, GWL_STYLE)

'Add System menu
iStyle = iStyle Or WS_SYSMENU
'Add minimise button
iStyle = iStyle Or WS_MINIMIZEBOX
'Add maximise button
iStyle = iStyle Or WS_MAXIMIZEBOX
'Set the basic window styles
SetWindowLong hWndForm, GWL_STYLE, iStyle
End Sub</pre>

Now in you userform initialise (initialize?) event use this code to call it:<pre>
MinMax me.Caption</pre>

Basically, for this routine to work we're just sending the userform's caption then the subroutine works it's magic.

Need to reference my source on this one.<ahref:= http://www.bmsltd.co.uk/Excel/Default.htm

HTH

_________________<font color = green> Mark O'Brien
This message was edited by Mark O'Brien on 2002-03-01 07:12
This message was edited by Mark O'Brien on 2002-03-01 07:33
 
Upvote 0
My Excel keeps crashin, it's doing it company wide at the moment. Systems are working on it but I cant try the thing you sent me just yet.

Thanks a lot though for digging it out, I'm sure it'll be great

Thanks again
 
Upvote 0

Forum statistics

Threads
1,223,350
Messages
6,171,592
Members
452,412
Latest member
sprichwort

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top