Deutsch
Forum

Menuetext ändern

 

Manfred
Barei
Hallo,

gibt es für das Fenster Menu sowas wie Settext um den Menuetext zu ändern

Gruß
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
13.01.2011  
 



Hilft Dir SetMenuItemInfo  [...]  ?
 
14.01.2011  
 




Rolf
Koch
oder zur Not eine Proc schreiben. Kompl. Menü löschen und mit neuen Werten (z.B. Parameterübergabe in Proc) neu erstellen. So würde ich es machen.
 
14.01.2011  
 




Detlef
Jagolski
Oder so?
Declare appexit%
Declare Button1&
Declare Menu#, hSubMenu&
 $H WINDOWS.PH
 $H MESSAGES.PH

Proc CreateMainMenu

    Popup "Beispiel"
    AppendMenu 1,"Text1"

EndProc

Set("TrueColor", 1)
WindowStyle $003F
WindowTitle "DesignForm"
Window %maxX + 5,114 - 498,415
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
CreateMainMenu
Button1&=Create("Button",%hwnd,"Menü ändern",93,65,75,25)
SetWindowPos %hwnd = 207,114 - 498,415;0

WhileNot appexit%

    WaitInput

    If %key = 2

        appexit% = 1

    ElseIf MenuItem(1)

        'Menü Text1

    ElseIf Clicked(Button1&)

        Dim Menu#,255
        hSubMenu& = ~GetSubMenu(&hMenu,0)
        String Menu#,0="Ich bin der neue Text"
        ~ModifyMenu(hSubMenu&,0,~MF_BYPOSITION | ~MF_STRING,1,Menu#)
        Dispose Menu#

    ElseIf %key = 4

        ' Fenstergröße

    ElseIf %key = 5

        ' Hilfe

    EndIf

Wend

 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
14.01.2011  
 




Manfred
Barei
Hallo Detlef,

so habe ich das schon hinbekommen, jedoch möchte ich den Hauptmenueintrag (Oberste Ebene) auch ändern (das ist dass was ich noch nicht hinbekomme), für weitere Vorshläge bin ich offen.

Habe es so gemacht, wie Rolf es vorgeschlagen hat, jedoch sollte es doch auch eine andere Möglichkeit geben, andere Programme bekommen das doch auch hin.

Das ist vieleicht ein vorschlag für XProfan13 (SetText auch für das Menu), Roland ist dies eventuel umsetzbar?

Gruß
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
14.01.2011  
 




Rolf
Koch
Dürfte doch kein Problem sein:

Also nur &hmenu angeben.
 
14.01.2011  
 




Rolf
Koch
ach vergessen, damit es auch direkt aktualisiert danach noch ein:
 
14.01.2011  
 




Detlef
Jagolski
Besser ist
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
14.01.2011  
 




Manfred
Barei
Hallo Detlef,

kannst du noch einmal helfen, bekomme es einfach nicht hin.
Den hMenu Eintrag kann ich nun ändern, jedoch bekomme ich das mit dem hSubMenu Eintrag einfach nicht hin, siehe Code.
Declare appexit%
Declare Button1&,Button2&
Declare Menu#,hMenu&,hSubMenu&
Dim Menu#,255
 $H WINDOWS.PH
 $H MESSAGES.PH

Proc CreateMainMenu

    Popup "Hauptmenü1"
    AppendMenu 1,"Text1"
    Popup "Hauptmenü2"
    AppendMenu 2,"Text2"

EndProc

Proc ChangeMenu

    Parameters m%,nr%,Text$
    ' m%, bei 0 ist das hMenu gemeint, bei 1 das hSubMenu
    ' nr%, die Position des hMenu bzw. d MenuItem
    ' Text$ enthält den neuen Text
    hMenu& = ~GetMenu(&hMenu,0)
    hSubMenu& = ~GetSubMenu(&hMenu,0)
    String Menu#,0=Text$
    Case m%=0 : ~ModifyMenu(&hMenu,nr%,~MF_BYPOSITION | ~MF_STRING,1,Menu#)
    Case m%=1 : ~ModifyMenu(hSubMenu&,nr%,~MF_BYPOSITION | ~MF_STRING,1,Menu#)
    ~DrawMenuBar(%hwnd)

EndProc

Set("TrueColor", 1)
WindowStyle $003F
WindowTitle "DesignForm"
Window %maxX + 5,114 - 498,415
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
CreateMainMenu
Button1&=Create("Button",%hwnd,"hMenü ändern",93,65,100,25)
Button2&=Create("Button",%hwnd,"subMenü ändern",93,100,100,25)
SetWindowPos %hwnd = 207,114 - 498,415;0

WhileNot appexit%

    Waitinput

    If %key = 2

        appexit% = 1
        Dispose Menu#

    ElseIf MenuItem(1)

        'Menü Text1

    ElseIf Clicked(Button1&)

        ChangeMenu 0,0,"Hauptmenü OK"

    ElseIf Clicked(Button2&)

        ChangeMenu 1,1,"Test2 OK"

    ElseIf %key = 4

        ' Fenstergröße

    ElseIf %key = 5

        ' Hilfe

    EndIf

Wend


Gruß
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
21.01.2011  
 




Detlef
Jagolski
Hallo Manfred,

so sollte es gehen.

GetMenu hat nur ein Parameter und muss %hwnd sein in unserem Fall, &hMenu ist das Handle vom Menü des Hauptfensters.deshalb brauchen wir hMenu& = ~GetMenu(%hwnd) nicht, hatte bei Dir auch keine Funktion.
Declare appexit%
Declare Button1&,Button2&
Declare Menu#,hMenu&,hSubMenu&
Dim Menu#,255
 $H WINDOWS.PH
 $H MESSAGES.PH

Proc CreateMainMenu

    Popup "Hauptmenü1"
    AppendMenu 1,"Text1"
    Popup "Hauptmenü2"
    AppendMenu 2,"Text2"

EndProc

Proc ChangeMenu

    Parameters m%,nr%,Pos%,Text$
    ' m%, bei 0 ist das hMenu gemeint, bei 1 das hSubMenu
    ' nr%, die Position des hMenu bzw. d MenuItem
    ' Pos% gibt die Position an für das hSubMenu an
    ' Text$ enthält den neuen Text
    hSubMenu& = ~GetSubMenu(&hMenu,Pos%)
    String Menu#,0=Text$
    Case m%=0 : ~ModifyMenu(&hMenu,nr%,~MF_BYPOSITION | ~MF_STRING,1,Menu#)
    Case m%=1 : ~ModifyMenu(hSubMenu&,nr%,~MF_BYPOSITION | ~MF_STRING,1,Menu#)
    ~DrawMenuBar(%hwnd)

EndProc

Set("TrueColor", 1)
WindowStyle $003F
WindowTitle "DesignForm"
Window %maxX + 5,114 - 498,415
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
CreateMainMenu
Button1&=Create("Button",%hwnd,"hMenü ändern",93,65,100,25)
Button2&=Create("Button",%hwnd,"subMenü ändern",93,100,100,25)
SetWindowPos %hwnd = 207,114 - 498,415;0

WhileNot appexit%

    Waitinput

    If %key = 2

        appexit% = 1
        Dispose Menu#

    ElseIf MenuItem(1)

        'Menü Text1

    ElseIf Clicked(Button1&)

        ChangeMenu 0,0,-1,"Hauptmenü OK"

    ElseIf Clicked(Button2&)

        ChangeMenu 1,0,0,"Test2 OK"

    ElseIf %key = 4

        ' Fenstergröße

    ElseIf %key = 5

        ' Hilfe

    EndIf

Wend

 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
22.01.2011  
 




Manfred
Barei
Hallo Detlef,

DAAAAAAAANNNNNKKKEE, jetzt funtz es wie ich es brauche.
Das mit dem zweiten Parameter bei ~GetSubMenu wahr dass was ich immer falsch gemacht habe, hat das kanze Lesen im Netz nichts genützt.

Nochmals Danke für die Hilfe auch an alle anderen.

Gruß aus der Heide
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
22.01.2011  
 




Detlef
Jagolski
Detlef Jagolski (22.01.11)
Hallo Manfred,

so sollte es gehen.

GetMenu hat nur ein Parameter und muss %hwnd sein in unserem Fall, &hMenu ist das Handle vom Menü des Hauptfensters.deshalb brauchen wir hMenu& = ~GetMenu(%hwnd) nicht, hatte bei Dir auch keine Funktion.
Declare appexit%
Declare Button1&,Button2&
Declare Menu#,hMenu&,hSubMenu&
Dim Menu#,255
 $H WINDOWS.PH
 $H MESSAGES.PH

Proc CreateMainMenu

    Popup "Hauptmenü1"
    AppendMenu 1,"Text1"
    Popup "Hauptmenü2"
    AppendMenu 2,"Text2"

EndProc

Proc ChangeMenu

    Parameters m%,nr%,Pos%,Text$
    ' m%, bei 0 ist das hMenu gemeint, bei 1 das hSubMenu
    ' nr%, die Position des hMenu bzw. d MenuItem
    ' Pos% gibt die Position an für das hSubMenu
    ' Text$ enthält den neuen Text
    hSubMenu& = ~GetSubMenu(&hMenu,Pos%)
    String Menu#,0=Text$
    Case m%=0 : ~ModifyMenu(&hMenu,nr%,~MF_BYPOSITION | ~MF_STRING,1,Menu#)
    Case m%=1 : ~ModifyMenu(hSubMenu&,nr%,~MF_BYPOSITION | ~MF_STRING,1,Menu#)
    ~DrawMenuBar(%hwnd)

EndProc

Set("TrueColor", 1)
WindowStyle $003F
WindowTitle "DesignForm"
Window %maxX + 5,114 - 498,415
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
CreateMainMenu
Button1&=Create("Button",%hwnd,"hMenü ändern",93,65,100,25)
Button2&=Create("Button",%hwnd,"subMenü ändern",93,100,100,25)
SetWindowPos %hwnd = 207,114 - 498,415;0

WhileNot appexit%

    Waitinput

    If %key = 2

        appexit% = 1
        Dispose Menu#

    ElseIf MenuItem(1)

        'Menü Text1

    ElseIf Clicked(Button1&)

        ChangeMenu 0,0,-1,"Hauptmenü OK"

    ElseIf Clicked(Button2&)

        ChangeMenu 1,0,0,"Test2 OK"

    ElseIf %key = 4

        ' Fenstergröße

    ElseIf %key = 5

        ' Hilfe

    EndIf

Wend


 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
22.01.2011  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

19.498 Betrachtungen

Unbenanntvor 0 min.
RudiB.01.02.2022
Georg Teles10.03.2018
Ernst12.05.2016
Michael W.22.08.2015
Mehr...

Themeninformationen



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