Context Menu
By default DG Kernel components display context menu (right mouse button).
The menu can be disabled (It will stop appearing) by setting the
Context Menu property in the
Component Context
Default structure of top level of the context menu, displayed on start of the
application, is described by
EMenuCommand_KC enumeration.
The menu can be modified at runtime. The menu items and submenus, including default ones,
can be disabled/enabled, removed, added etc using
IMenu_KC and
IMenuItem_KC interfaces.
IMenu_KC can be queried from
IView_DG interface of the component.
When a menu item is selected by the user the component raises
DG Kernel Event to notify the
application. The application can either update its User Interface accordingly or
block the command and execute a custom action instead.
The
eventType parameter of the
DG Kernel Event in this case is
EDIEvent.eEventUICommand.
Type of the
param0 has to be detected at runtime. It passed out as a generic
VARIANT type. For backward compatibility it is
integer for top level items and has
IMenuItem_KC type for items of
submenus.
Use code similar to:
Dim typeParam0 As Type = e.param0.GetType() \ If
typeParam0.Equals(GetType(UInt32)) Then .. (VB .NET)
Type typeParam0 = e.param0.GetType(); if( typeParam0.Equals(GetType(UInt32) )
....
(C#)
if( param0.vt == VT_UINT ) ....
(C++)
to detect the type
For top level items param0 has integer type and contains integer 0-based index of the selected
menu item. For items of submenus the index (along with other properties) can be
obtained via IMenuItem_KC.GetIndex()
param1 has Boolean type, is false at the start of
the handler and is considered as the
return value, which indicates whether the component should proceed with
execution of the command. If the event handler changes
param1 to true the component does not execute the
command. When the menu item has index greater than
EMenuCommand_KC.eMenuCommandAbout the return
value is not used by the component as there is no default action assigned
to the item. See Light Sample for an
example.
param1 Has has any effect only for default items at positions added by
the component at the start. It is ignored for new items added at runtime using
methods of
IMenu_KC
See also: Light Sample
|