Salve a tutti,
stavo smanettando con i menù, in particolare con l'EmptyShellMenu sotto l'applicazione Standard VO MDI generata in ambiente XIDE.
Mi chiedevo se fosse possibile modificare la CAPTION di una certa voce di menù dopo che lo stesso è stato associato alla StandardShellWindow nel metodo INIT:
METHOD Init( oOwnerApp ) CLASS StandardShellWindow
LOCAL oSB AS StatusBar
SUPER:Init( oOwnerApp )
SetDeleted(TRUE)
oSB := SELF:EnableStatusBar()
oSB:DisplayTime()
SELF:Menu := EmptyShellMenu{SELF} <===========
mi occorre fare ciò poiché in un'applicazione sotto VO che sto provando a replicare sotto X# vorrei modificare la CAPTION di una voce di menù se l'utente compie una determinata azione nel mio programma.
Ho esaminato la CLASSE MENU ma trovo solo metodi per vedere le diverse proprietà (GET) ma non per poterle impostare (SET); in particolare per la CAPTION che vorrei modificare.
Spero di essere stato chiaro. Qualcuno può aiutarmi?
Saluti
Francesco
Modifica della proprietà CAPTION di una voce di menù.
Moderator: wriedmann
Modifica della proprietà CAPTION di una voce di menù.
Ciao Francesco,
in questi casi cambio l'intero menu della finestra.
Dovrebbe essere possibile con un po di Windows API:
https://stackoverflow.com/questions/249 ... -item-text
Saluti
Wolfgang
in questi casi cambio l'intero menu della finestra.
Dovrebbe essere possibile con un po di Windows API:
https://stackoverflow.com/questions/249 ... -item-text
Saluti
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
-
- Posts: 97
- Joined: Tue Mar 01, 2016 11:50 am
- Location: Germany
Modifica della proprietà CAPTION di una voce di menù.
Ciao Francesco,
FUNCTION MenuChangeItem (oMenu AS Menu, nID AS DWORD, cCaption AS STRING) AS LOGIC PASCAL
LOCAL mii IS _winMENUITEMINFO
LOCAL pNewText AS PTR
LOCAL lRet := FALSE AS LOGIC
IF nID > 0
pNewText := MemAlloc(256)
mii.cbSize := _SIZEOF(_winMENUITEMINFO)
mii.fMask := MIIM_TYPE
mii.fType := MFT_STRING
mii.cch := 256
mii.dwTypeData := pNewText
IF GetMenuItemInfo(oMenu:Handle(), nID, FALSE, @mii)
MemCopyString(pNewText, cCaption + _CHR(0), SLen(cCaption)+1)
mii.cch := SLen(cCaption) + 1
lRet := SetMenuItemInfo(oMenu:Handle(), nID, FALSE, @mii)
ENDIF
MemFree(pNewText)
ENDIF
RETURN lRet
Saluti
Gerhard
FUNCTION MenuChangeItem (oMenu AS Menu, nID AS DWORD, cCaption AS STRING) AS LOGIC PASCAL
LOCAL mii IS _winMENUITEMINFO
LOCAL pNewText AS PTR
LOCAL lRet := FALSE AS LOGIC
IF nID > 0
pNewText := MemAlloc(256)
mii.cbSize := _SIZEOF(_winMENUITEMINFO)
mii.fMask := MIIM_TYPE
mii.fType := MFT_STRING
mii.cch := 256
mii.dwTypeData := pNewText
IF GetMenuItemInfo(oMenu:Handle(), nID, FALSE, @mii)
MemCopyString(pNewText, cCaption + _CHR(0), SLen(cCaption)+1)
mii.cch := SLen(cCaption) + 1
lRet := SetMenuItemInfo(oMenu:Handle(), nID, FALSE, @mii)
ENDIF
MemFree(pNewText)
ENDIF
RETURN lRet
Saluti
Gerhard
Modifica della proprietà CAPTION di una voce di menù.
Grande Gherard,
la funzione è perfetta e lavora molto bene
Saluti
Francesco
la funzione è perfetta e lavora molto bene
Saluti
Francesco