Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Alweer VBA: Min Max Buttons

PeBo
11 antwoorden
  • Ik ga rustig verder: op een MS Acces form kun je wel Min Max Buttons plaatsen, op een MS Word form (gemnaakt met VBA dus) niet. Klopt dat? Zo ja, is daar een oplossing voor?
  • Wat bedoel je met een min - max button. Is dit de wisseknop of wil je het minimum of maximum van een reeks ?
  • Min Max Buttons zijn twee knopjes in de "blauwe" balk, en die knopjes staan naast het "kruisje" (het knopje sluiten). Met Min minimaliseer je het scherm, met Max maximaliseer je het scherm: standaard Windows handelingen kortom.

    Dat kan wel met een MS Access formulier, maar kan dat ook met een MS Word formulier?
  • Voorzover ik weet zijn deze knopjes niet beschikbaar voor een userform in VBA WORD. Misschien kan het via een Windows API call.
  • Ik weet iets van VBA maar helemaal niets van API calls (dat is toch werken met DLL's?). Waar kan je daar meer over vinden? Op de site van Bill?
  • En zou hier het verlossende woord tussen zitten:http://www.andreavb.com/tip050002.html?
  • Lijkt er wel op, maar alleen uitproberen geeft het uiteindelijke antwoord.
  • Ik heb al een beetje lopen rommelen - er gebeurde helaas wienig. Op een site waarnaar flvanSon wij in ander onderdeel van dit forum een verwees - zo'n 10 min. nadat ik een vraag zelf had opgelost! - las ik echter dat "the hWnd property of Word's various windows" niet beschikbaar zijn in VBA - geen flauw idee wat dat betekent, maar veel goeds voorspelt het niet.
  • De h staat voor handle en Wnd is kort voor Window oftewel venster. Windows gebruikt een handle (uniek nummer) als identificatie voor een venster. Als er geen hWnd voor een Word venster is dan kun je ook een flink aantal api functies niet aanroepen. In de code op de site van Andrea hebben vier van de vijf functies de hWnd nodig.

    Je kunt een hWnd met een functie opvragen, kijk maar naar het volgende simpele voorbeeld:

    [code:1:1e2911421d]Option Explicit

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

    Private Sub Form_Load()
    Dim WinWnd As Long, Ret As String

    'Vraag naar de exacte titel van het venster
    Ret = InputBox("Geef de exacte titel van het venster:")
    'Zoek het venster
    WinWnd = FindWindow(vbNullString, Ret)
    If WinWnd = 0 Then
    MsgBox "Kon het venster niet vinden …"
    Else
    MsgBox "hWnd = " & WinWnd
    End If
    End Sub[/code:1:1e2911421d]

    Dit gaat uiteraard alleen op als die word vensters een titel hebben

    Oh ja, als je geen tekst in het tekstvak doet dan vindt hij toch ergens een hWnd, heb alleen geen zin om uit te zoeken waarvan.
    _________________
    I'm not a complete idiot, some parts are missing.

    [ Dit Bericht is bewerkt door: DarkScribe op 2002-03-09 19:54 ]
  • Dat werkt inderdaad prima. Bedankt!

    Inmiddels had ik overigens ontdekt dat de functie GetActiveWindow() uit user32 hetzelfde resultaat geeft, maar jouw Sub lijkt zo op het eerste gezicht beter, want niet afhankelijk van de vraag welk Window nu actief is (of is dat onzin?).

    Enfin, ik heb de Code van de site van Andrea gebruikt en … er verschijnen zowaar Min Max Buttons op het form zonder dat de boel crasht. De buttons doen ook wat ze moeten doen, dus we zijn er bijna. Nog niet helemaal: mijn buttons verschijnen namelijk pas nadat je of met de muis over hun "plaats" beweegt of de desbtreffende titelbalk aanklikt!

    Iemand enig idee waar ik moet zoeken om die (laatste) hobbel te nemen?
  • Zat te denken aan Object.ReFresh eventueel in samenwerking met een DoEvents.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.