Deutsch
Quelltexte/ Codesnippets

Deaktivieren Gesamtes Menü

 

Jac
de
Lad
Hallo Community,

gibts eine Möglichkeit, das gesamte, mit CreateMenu erstellte Menü auf einmal zu deaktivieren? Und wie kann ich zwischenrein mal schnell ein anderes Menü definieren, dass angezeigt werden soll (und anschließend wieder das erste)?

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
14.09.2006  
 



Wenn es geht dann steht es hier: [...] 

Denke auch an: &hMenu 
 
14.09.2006  
 



Mir fiel da grad noch User32s SetParent  von &hMenu  ein - oder so ein Quarks ebend...
 
14.09.2006  
 




Jörg
Sellmeyer
Hallo Jac,
Vielleicht hilft Dir das:
[...] 

oder das:
[...] 

Das alte Forum ist ne echte Fundgrube! Es lohnt sich dort zu suchen bevor man fragt
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.09.2006  
 




KompilierenMarkierenSeparieren
Autor: Norbert Spörl (---.dip.t-dialin.net)
Datum:   06.03.03 15:29
DEF EnableMenuItem(3) !"USER32","EnableMenuItem"
DEF GetMenu(1) !"USER32","GetMenu"
cls
declare abbrechen%, cmenu_off%
cmenu_off% = 0
locate 1,1
print "Aktivieren/Deaktivieren des Copyright-Menüs duch Mausklick im Client-Area !"

while (abbrechen% = 0)

    waitinput

    If (%menuitem = 254)

        continue

    endif

    if (cmenu_off% = 0)

        messagebox "... Copyright-Menü ausschalten", "... mit nächstem <OK>", 32
        EnableMenuitem(GetMenu(%hwnd), 0, $402)
        cmenu_off% = 1

    else

        messagebox "... Copyright-Menü aktivieren", "... mit Mausklick <OK>", 32
        EnableMenuitem(GetMenu(%hwnd), 0, $400)
        cmenu_off% = 0

    endif

    if (%key = 27)

        -> Esc-Taste = Abbrechen
        abbrechen% = 1

    endif

endwhile

end

KompilierenMarkierenSeparieren
Autor: Sebastian König (---.dip0.t-ipconnect.de)
Datum:   08.05.03 00:25
graymenu.prf - Hauptmenu komplett (de)aktivieren
Autor: Sebastian König
email: feedback@sekoenig.de
Homepage: http://www.sekoenig.de
Copyright © 2003 Sebastian König
DEF EnableMenuItem(3) !"USER32","EnableMenuItem"
DEF GetMenu(1) !"USER32","GetMenu"
DEF GetMenuItemCount(1) !"USER32","GetMenuItemCount"
DEF DrawMenuBar(1) !"USER32","DrawMenuBar"
declare MY_GRAYED&,MF_BYPOSITION&,MF_ENABLED&
let MY_GRAYED&     = $0001
let MF_BYPOSITION& = $0400
let MF_ENABLED&    = $0000

proc DisableMainMenu

    declare hMenu&,count&,i&
    let hMenu& = GetMenu(%hwnd)
    let count& = GetMenuItemCount(hMenu&)
    let i& = 0

    while @lt(i&,count&)

        EnableMenuItem(hMenu&,i&,@or(MY_GRAYED&,MF_BYPOSITION&))
        let i& = @add(i&,1)

    wend

    DrawMenuBar(%hwnd)

endproc

proc EnableMainMenu

    declare hMenu&,count&,i&
    let hMenu& = GetMenu(%hwnd)
    let count& = GetMenuItemCount(hMenu&)
    let i& = 0

    while @lt(i&,count&)

        EnableMenuItem(hMenu&,i&,@or(MF_ENABLED&,MF_BYPOSITION&))
        let i& = @add(i&,1)

    wend

    DrawMenuBar(%hwnd)

endproc

---Test:
Cls
PopUp "&Datei"
AppendMenu 100,"..."
PopUp "B&earbeiten"
AppendMenu 200,"..."
PopUp "&Hilfe"
AppendMenu 300,"..."
print "[D] = Deaktivieren / [A] = Aktivieren"

while 1

    waitinput

    if @KeyIn("Dd")

        DisableMainMenu

    elseif @KeyIn("Aa")

        EnableMainMenu

    endif

wend

end
 
15.09.2006  
 




Jac
de
Lad
Ich blicke bei den ganzen Quelltexten nicht durch. Ich will, wie gesagt, das ganze Menü deaktivieren, also auch die Popups, sodass man auch nichts mehr anklicken kann und es klappt sich was aus, das meine ich.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
15.09.2006  
 



Probiere mal enable(window|menu) getmenu(%hwnd),0
 
15.09.2006  
 




Jac
de
Lad
Klappt nicht (PS: Ich erstelle das Menu mit der DlgMenu.pcu auf dem %HWnd)
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
15.09.2006  
 



Schau mal klappt:
KompilierenMarkierenSeparieren
 {$cleq}
 $U dlgmenu.pcu = menu.
Def Enablemenuitem(3) !"USER32","EnableMenuItem"
Def Getmenuitemcount(1) !"USER32","GetMenuItemCount"
Def Drawmenubar(1) !"USER32","DrawMenuBar"
declare menu&,dlg&,dlg2&,dlg3&
Cls
windowstyle 4+8
dlg&=CreateWindow(%hwnd,"Dialog mit Menü",0,0,200,200)
dlg2&=CreateWindow(%hwnd,"Dialog2 mit Menü",200,0,200,200)
dlg3&=CreateWindow(%hwnd,"Dialog3 mit Menü",400,0,200,200)
buildmenu %hwnd
buildmenu dlg&
buildmenu dlg2&
buildmenu dlg3&

Whilenot (%key==2)

    waitinput

    if (abs(%menuitem)==104)

        break

    endif

Wend

end

proc buildmenu

    parameters dlg&
    menu&:=menu.new(dlg&)
    menu.setNiceBackground
    menu.popup "&Datei"
    menu.appendmenu 100,"Neu"
    menu.appendmenu 101,"Öffnen"
    menu.separator
    menu.subpopup "Export"
    menu.appendmenu 102,"Bitmap"
    menu.appendmenu 103,"Vector"
    menu.separator
    menu.subpopup "Mega-XPort"
    menu.appendmenu 105,"Ja"
    menu.separator
    menu.subpopup "Nein"
    menu.appendmenu 105,"Ja"
    menu.endsub
    menu.appendmenu 101,"Öffnen"
    menu.endsub
    menu.appendmenu 101,"Öffnen"
    menu.endsub
    menu.appendmenu 101,"Öffnen"
    menu.separator
    menu.appendmenu 104,"&Beenden"
    menu.popup "&Bearbeiten"
    menu.appendmenu 200,"Rückgängig"
    menu.separator
    menu.appendmenu 201,"Widerherstellen"
    menu.popup "&?"
    menu.appendmenu 200,"About"
    menu.separator
    menu.appendmenu 201,"Hilfe"
    menu.checkmenu menu&,101,1
    menu.enablemenu 102,0
    menu.setitemicon menu&,100,"tile.bmp"
    declare count&,i&
    Let Count& = Getmenuitemcount(menu&)
    Let I& = 0

    While @Lt(I&,Count&)

        Enablemenuitem(menu&,I&,$0401)
        Let I& = @Add(I&,1)

    Wend

    Drawmenubar(%Hwnd)

endproc

 
15.09.2006  
 



Nachtrag: schau mal diese Konstanten kannst Du nutzen statt $0401 wie oben:
KompilierenMarkierenSeparieren
MF_APPEND = { $100 | 256 }
MF_BITMAP = { $4 | 4 }
MF_BYCOMMAND = { $0 | 0 }
MF_BYPOSITION = { $400 | 1024 }
MF_CHANGE = { $80 | 128 }
MF_CHECKED = { $8 | 8 }
MF_DEFAULT = { $1000 | 4096 }
MF_DELETE = { $200 | 512 }
MF_DISABLED = { $2 | 2 }
MF_ENABLED = { $0 | 0 }
MF_END = { $80 | 128 }
MF_GRAYED = { $1 | 1 }
MF_HELP = { $4000 | 16384 }
MF_HILITE = { $80 | 128 }
MF_INSERT = { $0 | 0 }
MF_MENUBARBREAK = { $20 | 32 }
MF_MENUBREAK = { $40 | 64 }
MF_MOUSESELECT = { $8000 | 32768 }
MF_OWNERDRAW = { $100 | 256 }
MF_POPUP = { $10 | 16 }
MF_REMOVE = { $1000 | 4096 }
MF_RIGHTJUSTIFY = { $4000 | 16384 }
MF_SEPARATOR = { $800 | 2048 }
MF_STRING = { $0 | 0 }
MF_SYSMENU = { $2000 | 8192 }
MF_UNCHECKED = { $0 | 0 }
MF_UNHILITE = { $0 | 0 }
MF_USECHECKBITMAPS = { $200 | 512 }
 
15.09.2006  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

6.118 Betrachtungen

Unbenanntvor 0 min.
Gast.081528.08.2024
AndreasS17.12.2018
E.T.03.03.2018
Heltal25.07.2014

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

iF (6x)
Jac de Lad (3x)
Jörg Sellmeyer (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie