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

Kruisje disablen

lasiot
2 antwoorden
  • Hoe kan ik in VB6 een form wel minimaliseren of maximaliseren, maar de mogelijkheid om te sluiten met het kruisje disablen?
  • Dat kun je met een paar API-calls redelijk eenvoudig realiseren.
    Zet het volgende in een module.
    [code:1:c4410ac333]
    Option Explicit

    Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
    Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long

    Public Const MF_BYPOSITION = &H400&
    Public Const MF_REMOVE = &H1000&
    Public Const MF_ENABLED = &H0&
    Public Const MF_INSERT = &H0&



    ' Params:
    ' frmForm is het form waar je de status van x van wilt beinvloeden.
    ' bEnabled, false -> disable X, true -> enable X

    Public Sub DisableX(frmForm As Form, bEnabled As Boolean)

    Dim hMenu As Long
    Dim lngCount As Long

    If Not bEnabled Then
    hMenu = GetSystemMenu(frmForm.hwnd, 0)
    lngCount = GetMenuItemCount(hMenu)

    'Haalt het sluitmenu en de separator weg.
    Call RemoveMenu(hMenu, lngCount - 1, MF_REMOVE Or MF_BYPOSITION)
    Call RemoveMenu(hMenu, lngCount - 2, MF_REMOVE Or MF_BYPOSITION)

    'Wijzigingen ook in het scherm updaten.
    DrawMenuBar frmForm.hwnd
    Else
    hMenu = GetSystemMenu(frmForm.hwnd, True)
    DrawMenuBar frmForm.hwnd
    End If

    End Sub

    [/code:1:c4410ac333]

    Om nu de X in een form (en uiteraard het bijbehorende menu-item in het systemmenu) te eactiveren roep je eenvoudig deze funktie aan met de formnaam en een False

    [code:1:c4410ac333]

    Call DisableX (frmMain, False)

    [/code:1:c4410ac333]

Beantwoord deze vraag

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