Menubar in linked childwindows
Posted: Mon Mar 01, 2010 3:13 am
I want to solve the problem, illustrated in attached code.
When I link the childwindow inside the main window the menubar of the child disappear.
I have attached the code, project and exe file to illustrate the behavior.
Look at this code sample:
#Include 'dcdialog.ch'
#include 'appevent.ch'
PROCEDURE Main()
LOCAL GetList := {}, oFileMenu, oFilemenu1, oFilemenu2, oMenuBar, oEditMenu,;
oMemo, oUtilMenu, lok := .t.
Local odlg
/* ---- Menu ---- */
DCMENUBAR oMenuBar parent oDlg ;
ownerdraw ;
menubarcolor 0,{150,150,150};
subbarcolor 1,{150,150,150} ;
subcolor 0,{200,200,200}
DCSUBMENU oFileMenu PROMPT "&Menu" ;
checked ;
PARENT oMenuBar
DCMENUITEM "Test with menu" PARENT oFileMenu ;
accelkey xbeK_ALT_F4 ;
ACTION {||test('menu',odlg)}
DCMENUITEM "Test without menu" PARENT oFileMenu ;
accelkey xbeK_ALT_F4 ;
ACTION {||test('',odlg)}
DCMENUITEM "E&xit Alt-F4" PARENT oFileMenu ;
accelkey xbeK_ALT_F4 ;
ACTION {||DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList)}
dcread gui parent @odlg title 'Main window'
return
procedure test(parm,odlg)
Local cString := space(30)
LOCAL GetList := {}
Local oFileMenu,oMenuBar
local odlg1
setAppwindow(odlg:drawingarea)
DCMENUBAR oMenuBar parent oDlg1 ;
menubarcolor 0,{150,150,150};
subbarcolor 1,{150,150,150} ;
subcolor 0,{200,200,200}
DCSUBMENU oFileMenu PROMPT "&Menu" ;
checked ;
PARENT oMenuBar
DCMENUITEM "E&xit Alt-F4" PARENT oFileMenu ;
accelkey xbeK_ALT_F4 ;
ACTION {||DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList)}
@ 1,1 dcsay 'String' get cString
dcgetoptions autowinmenu eval{||setappwindow(odlg:drawingarea)}
if parm = 'menu'
dcRead gui fit buttons 1 options getoptions parent @odlg1 //Menu visible
else
dcRead gui fit buttons 1 parent @odlg1 options getoptions appwindow @odlg //Menu invisible
endif
RETURN
procedure appsys()
return
When I link the childwindow inside the main window the menubar of the child disappear.
I have attached the code, project and exe file to illustrate the behavior.
Look at this code sample:
#Include 'dcdialog.ch'
#include 'appevent.ch'
PROCEDURE Main()
LOCAL GetList := {}, oFileMenu, oFilemenu1, oFilemenu2, oMenuBar, oEditMenu,;
oMemo, oUtilMenu, lok := .t.
Local odlg
/* ---- Menu ---- */
DCMENUBAR oMenuBar parent oDlg ;
ownerdraw ;
menubarcolor 0,{150,150,150};
subbarcolor 1,{150,150,150} ;
subcolor 0,{200,200,200}
DCSUBMENU oFileMenu PROMPT "&Menu" ;
checked ;
PARENT oMenuBar
DCMENUITEM "Test with menu" PARENT oFileMenu ;
accelkey xbeK_ALT_F4 ;
ACTION {||test('menu',odlg)}
DCMENUITEM "Test without menu" PARENT oFileMenu ;
accelkey xbeK_ALT_F4 ;
ACTION {||test('',odlg)}
DCMENUITEM "E&xit Alt-F4" PARENT oFileMenu ;
accelkey xbeK_ALT_F4 ;
ACTION {||DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList)}
dcread gui parent @odlg title 'Main window'
return
procedure test(parm,odlg)
Local cString := space(30)
LOCAL GetList := {}
Local oFileMenu,oMenuBar
local odlg1
setAppwindow(odlg:drawingarea)
DCMENUBAR oMenuBar parent oDlg1 ;
menubarcolor 0,{150,150,150};
subbarcolor 1,{150,150,150} ;
subcolor 0,{200,200,200}
DCSUBMENU oFileMenu PROMPT "&Menu" ;
checked ;
PARENT oMenuBar
DCMENUITEM "E&xit Alt-F4" PARENT oFileMenu ;
accelkey xbeK_ALT_F4 ;
ACTION {||DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList)}
@ 1,1 dcsay 'String' get cString
dcgetoptions autowinmenu eval{||setappwindow(odlg:drawingarea)}
if parm = 'menu'
dcRead gui fit buttons 1 options getoptions parent @odlg1 //Menu visible
else
dcRead gui fit buttons 1 parent @odlg1 options getoptions appwindow @odlg //Menu invisible
endif
RETURN
procedure appsys()
return