This is a very busy userform and I don't want to add another label or
textbox.
Also the titlebar is just nice for this purpose as it stands out and is
clear.
It is no trouble as all I have to do is add the line AddMinMax after any
code
that alters the caption.
> I tend to subscribe to KISS personally
What is that?
RBS
"Bob Phillips" <bob.phillips@notheretiscali.co.uk> wrote in message
news:u2qIn9EHFHA.2976@TK2MSFTNGP15.phx.gbl...
>I appreciate that it doesn't solve the problem, but would it not have been
> better (easier?) to have a status area and display your messages there
> rather than change the caption. I tend to subscribe to KISS personally.
>
> --
>
> HTH
>
> RP
> (remove nothere from the email address if mailing direct)
>
>
> "RB Smissaert" <bartsmissaert@blueyonder.co.uk> wrote in message
> news:%23Xr7w0EHFHA.1396@TK2MSFTNGP10.phx.gbl...
>>
>> Two answers.
>>
>> I use the userform title bar (caption) to display all kind of messages
>> for
>> the users.
>>
>> Public Declare Function DrawMenuBar Lib "user32" _
>> (ByVal hwnd As Long) As Long
>>
>> RBS
>>
>>
>> "Bob Phillips" <bob.phillips@notheretiscali.co.uk> wrote in message
>> news:%23%23s0aiEHFHA.3592@TK2MSFTNGP10.phx.gbl...
>> > Two questions.
>> >
>> > Why do you need to change the caption?
>> >
>> > Where is DrawMenuBar defined?
>> >
>> > --
>> >
>> > HTH
>> >
>> > RP
>> > (remove nothere from the email address if mailing direct)
>> >
>> >
>> > "RB Smissaert" <bartsmissaert@blueyonder.co.uk> wrote in message
>> > news:Oe6GucEHFHA.4084@TK2MSFTNGP14.phx.gbl...
>> >> I think I have this now all worked out.
>> >> This is the code that does it:
>> >>
>> >>
>> >> 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 WS_MAXIMIZEBOX = &H10000
>> >> Private Const WS_MINIMIZEBOX = &H20000
>> >> Private Const GWL_STYLE = (-16)
>> >>
>> >> Sub AddMinMax()
>> >>
>> >> Dim hWnd As Long
>> >> Dim lngStyle As Long
>> >>
>> >> hWnd = FindWindow(vbNullString, MainForm.Caption)
>> >>
>> >> lngStyle = GetWindowLong(hWnd, GWL_STYLE)
>> >> lngStyle = lngStyle Or WS_MAXIMIZEBOX
>> >> lngStyle = lngStyle Or WS_MINIMIZEBOX
>> >> SetWindowLong hWnd, GWL_STYLE, lngStyle
>> >>
>> >> DrawMenuBar hWnd
>> >>
>> >> End Sub
>> >>
>> >> Just have to run AddMinMax from the Userform Activate event and after
> any
>> >> code that alters the caption
>> >> of the userform via Userform.Caption =
>> >> It works very nice indeed.
>> >> Just have to make my keyboard shortcuts now to run these menubar
> buttons.
>> >>
>> >>
>> >> RBS
>> >>
>> >>
>> >> "RB Smissaert" <bartsmissaert@blueyonder.co.uk> wrote in message
>> >> news:%23HpgJ3AHFHA.1392@TK2MSFTNGP10.phx.gbl...
>> >> > How do I add minimize and maximize buttons to a VBA userform?
>> >> > I have this code that does it, but when I change the caption of the
>> >> > userform
>> >> > the buttons don't work anymore. I am slowly coming to the conclusion
>> > that
>> >> > it probably is not worth the trouble and that it is better to make
> your
>> >> > own buttons.
>> >> >
>> >> > Public Declare Function FindWindow _
>> >> > Lib "user32" Alias _
>> >> > "FindWindowA" (ByVal lpClassName As Long, _
>> >> > ByVal lpWindowName 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 Sub UserForm_Initialize()
>> >> >
>> >> > Dim hWnd as Long
>> >> >
>> >> > hWnd = FindWindow(vbNullString, UserForm1.Caption)
>> >> > SetWindowLong hWnd, -16, &H20000 Or &H10000 Or &H84C80080
>> >> >
>> >> > End Sub
>> >> >
>> >> >
>> >> > RBS
>> >> >
>> >>
>> >
>> >
>>
>
>
Bookmarks