Foro | | | | Manfred Barei | Ciao,
gibt es per das Fenster Menu sowas wie Settext um den Menuetext zu ändern
Saluto |
| | | 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 [...] ? |
| | | | |
| | 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. |
| | | | |
| | 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
' Aiuto
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 Io l' Hauptmenueintrag (Oberste Ebene) auch ändern (das ist dass was ich noch nicht hinbekomme), per 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 per XProfan13 (SetText auch per das Menu), Roland ist dies eventuel umsetzbar?
Saluto |
| | | 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. |
| | | | |
| | Rolf Koch | ach vergessen, damit es auch direkt aktualisiert danach noch ein:
|
| | | | |
| | Detlef Jagolski | | | | 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
' Aiuto
EndIf
Wend
Saluto |
| | | 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 per 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
' Aiuto
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 per die Aiuto auch an alle anderen.
Saluto 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 per 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
' Aiuto
EndIf
Wend
|
| | | XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 22.01.2011 ▲ |
| |
|
AnswerTopic-Options | 19.616 Views |
ThemeninformationenDieses Thema hat 4 subscriber: |