Forum | | | | 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 [...] ? |
| | | | |
| | 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
' 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. |
| | | | |
| | 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
' 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 ▲ |
| |
|
AntwortenThemenoptionen | 19.579 Betrachtungen |
ThemeninformationenDieses Thema hat 4 Teilnehmer: |