A window menu is attributed to a window using the WindSet() function (as AES philosophy). First of all, create the window with the WindCreate() function and get the menu address. Then use the WindSet() function with WF_MENU option.
Here a typical example :
    {
        OBJECT *menu;
        WINDOW *win;
        win = WindCreate( NAME|MOVER|CLOSER, app.x, app.y, app.w, app.h);
        rsrc_gaddr( 0, MENU1, &tree);
        WindSet( win, WF_MENU, tree, NULL);
        WindOpen( win, -1, -1, 400, 200);
    }
A menu can be removed by the call :
        WindSet( win, WF_MENU, NULL);
All menus attributed to a window are duplicated in memory ( WindSet()
uses the ObjcDup() function).
Desktop menu
The desktop menu is declared with the function MenuBar(). A typical example is :
    main() {
        OBJECT *menu;
        ApplInit();
        RsrcLoad( "resource.rsc");
        rsrc_gaddr( 0, MYMENU, &menu);
        MenuBar( menu, 1);
        ...
    }