Menu verwijderen

Alles over het toepassen van API en DLL's in Liberty BASIC

Moderator: anthonio

Menu verwijderen

Berichtdoor anthonio » do jan 15, 2009 11:16 am

Even een korte uitleg hierbij.
Voor mijn programma heb ik een texteditor nodig.
Nu als men een texteditor in het programmma toevoegd creeert LB automatisch een edit menu bovenaan.
BIj dit progrmma werk ik anders niet met menu's dus dit was redelijk vervelend.
Bij deze dus, de code hoe je 1 of meerdere menu's kan verwijderen in LB.
Ik wil er even aan toevoegen dat dit van alycesrestaurant.com site komt.

Code: Selecteer alles
NoMainWin
Menu #main, "&File","E&xit",[quit]
Menu #main, "Edit"
Texteditor #main.t,10,10,200,200
Open "A Window" For Window As #main
#main "trapclose [quit]"

hMain=hWnd(#main)
hMainMenu=GetMenu(hMain)
'Als je 1 veranderd door 0 dan verwijder je het eerste menu en dit is dan file ipv edit
'Met andere woorden de menu's beginnen vanaf 0
hMainEdit=GetSubMenu(hMainMenu,1)
result=RemoveMenu(hMainMenu,hMainEdit)
Call DrawMenuBar hWnd(#main)
Wait

[quit]
Close #main:End

'functions:
Sub DrawMenuBar hWnd
    CallDLL #user32, "DrawMenuBar",_
    hWnd As ulong, r As boolean
    End Sub

Function GetSubMenu(hMenuBar,nPos)
    CallDLL #user32, "GetSubMenu",_
    hMenuBar As ulong, nPos As long,_
    GetSubMenu As ulong
    End Function

Function GetMenu(hWnd)
    CallDLL #user32, "GetMenu",hWnd As ulong,_
    GetMenu As ulong
    End Function

Function RemoveMenu(hMenu,hSubMenu)
    CallDLL #user32, "RemoveMenu", hMenu As ulong,_
    hSubMenu As ulong, _MF_BYCOMMAND As ulong,_
    RemoveMenu As boolean
    End Function



Andy
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Keer terug naar API/DLL

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron