Minimize, Maximize, Close

123456

Kuinka pystyn Visual Basicilla havaitsemaan onko jokin noista aktiivisen ikkunan napeista eli pienennys, suurennus tai sulje napeista otettu pois käytöstä?

3

266

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Orwell

      Näiden ominaisuuksien tutkiminen auttaa joillakin Form:n BorderStyle asetuksilla (1-3).

      Close = ControlBox (jos False ei näytä myöskään Maximize tai Minimize, vaikka olisivat True)
      MaxButton = Maximize
      MinButton = Minimize

      • 123456

        Kiitos jo tästä mutta selostin vähän huonosti nimittäin tuohan havaitsee vain lomake ikkunasta noiden nappien arvot mutta ei olisi mahdollista selvittää samanlailla tuota arvoa vaikka Internet Explorer selaimesta?

        app_hwnd = GetWindow(DesktopWindow(), GW_CHILD)
        Mitään apua tuosta?


      • Orwell
        123456 kirjoitti:

        Kiitos jo tästä mutta selostin vähän huonosti nimittäin tuohan havaitsee vain lomake ikkunasta noiden nappien arvot mutta ei olisi mahdollista selvittää samanlailla tuota arvoa vaikka Internet Explorer selaimesta?

        app_hwnd = GetWindow(DesktopWindow(), GW_CHILD)
        Mitään apua tuosta?

        Tällä ohjelmapätkällä saa ainakin selville onko ikkunalla Minimize ja/tai Maximize napit olemassa. Vaatii kuitenkin tarkempaa ikkunan tyylin tutkintaa, jos haluaa tietää onko siellä sulkemisnappi ja ovatko pienneys ja suurennus napit todellakin näkyvissä. Tälläkin funktiolla esim. jos VB:n formissa on ControlBox False, mutta MinButton ja/tai MaxButton ovat True, niin metodi kertoo käyttäjälle näiden olevan näkyvissä, vaikka todellisuudessa eivät käyttäjälle näy.

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

        Private Const GWL_STYLE = (-16)

        Private Const WS_MINIMIZEBOX = &H20000
        Private Const WS_MAXIMIZEBOX = &H10000


        Private Sub Test()

        Dim app_hwnd As Long
        Dim str As String
        Dim lRet As Long

        app_hwnd = GetActiveWindow()
        lRet = GetWindowLong(app_hwnd, GWL_STYLE)


        If lRet And WS_MAXIMIZEBOX Then
        MsgBox "Has MaximizeBox!", , ""
        End If

        If lRet And WS_MINIMIZEBOX Then
        MsgBox "Has MinimizeBox!", , ""
        End If

        End Sub


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Riikka Purra leikkasi alimmalta tulodesiililtä 15 %

      Muistaako kukaan Riikka Purran kovaäänisen vaalilupauksen ennen eduskuntavaaleja? https://yle.fi/a/74-20221152 "THL o
      Maailman menoa
      279
      5838
    2. Muistele nainen niitä meidän yhteisiä hetkiä

      Miltä ne tuntui? Enkö aina huokunut välittämistä, kiintymystä. Eikö sinulla aina ollut hyvä olo kanssani? Minulla ainaki
      Ikävä
      37
      3396
    3. Sofia Virta: bänet!

      Matkailuautoilija metsänomistaja puoliso on nyt entisen teeren poikia, ja Sofia tekee comebackin vapaille markkinoille.
      Maailman menoa
      143
      2637
    4. "Suomi voisi ottaa taloudessa oppia Espanjasta"

      "Espanjassa talouspolitiikka on löysempää, mutta velka-aste on kääntynyt jopa laskuun.", pohdiskelee Suomen seuraava pää
      Maailman menoa
      221
      2102
    5. Kokoomus: SDP johtaa kansalaisia harhaan

      (Umpityhmät palstademarit ovat taas uskoneet Lindtmanin höpötykset Espanjasta.) SDP harhaanjohtaa kansalaisia talouspol
      Maailman menoa
      78
      1635
    6. Otan vielä joskus yhteyttä

      Ja jos et vastaa, niin tulen sinne. Pakko puhua.
      Ikävä
      64
      1057
    7. Niin että miten

      Haluatko oikeasti olla minun kanssa oikeassa elämässä, vai onko tämä vain kirjoittelua
      Ikävä
      77
      991
    8. Nuoriso on tyhmää tutkijat ovat todenneet

      Nyt se on todettu ääneen mitä kaikki ovat jo pitkään epäilleet. Nuoriso on tyhmentynyt tasaiseen tahtiin. Kohta pitää ni
      Sinkut
      126
      856
    9. Ikävä tilanne rikoksen vuoksi Espanjassa - Jari Sillanpää pistää uutta matoa koukkuun

      Jari Sillanpää on ehkä yksi suosituimmista tangokuninkaallisista. Ex-tangokuningas juhli viime syksynä 30 vuotista uraan
      Suomalaiset julkkikset
      9
      855
    10. Tätä ei tv:ssä: Farmi-tippuja Amski rehellisenä ongelmista kuvauksissa

      Ennakkosuosikki Amskidabamski Anne-Mari Tarkkio joutui ulos Farmi Suomi -realitystä. Voimatehtävässä vastakkain asettui
      Tv-sarjat
      11
      804
    Aihe