EmbeddedWindow property
(Windows only; GUI for .NET only)The handle to an ABL window whose client area is embedded in the client area of the specified .NET control container. This control container can be either a Progress.Windows.MdiChildForm or a Progress.Windows.WindowContainer (which you can add to any Progress.Windows.Form). After a .NET form with this embedded client area is displayed, you can interact with its ABL widgets using the supported widget attributes, methods, and events as if they were displayed in the original ABL window.
Data type: HANDLE
Access: PUBLIC Readable/Writeable
Applies to: Progress.Windows.MDIChildForm class, Progress.Windows.WindowContainer class
To reset a previously set instance of this property on a control container:
Note that when you embed an ABL window in a .NET form, only the client area of the window is embedded. ABL ignores all other components of the ABL window, including border controls, menu bar, message area, and status area. For more information, see the reference entries for the Progress.Windows.MDIChildForm class and Progress.Windows.WindowContainer class.
When you embed the client area of an ABL window in a supported .NET control container, the various attributes, methods, and events of the embedded ABL window either function normally, change behavior, or have no function (are ignored), depending on the element. The following tables describe how these elements are affected by embedding the ABL window. For more information on the attributes, methods, and events of an ABL window, see the WINDOW widget reference entry.
Note: You can use enhanced logging to trace the occurrence of attributes and methods in your application that are ignored when you access them on an embedded ABL window. For more information, see the IgnoredOps entry type described in the LOG-ENTRY-TYPES attribute reference entry.Table 126 lists those attributes that work on an embedded ABL window in the same way as on a non-embedded window.
Table 126: Attributes unchanged on an embedded ABL window BGCOLOR CONTEXT-HELP-FILE1 DROP-TARGET DYNAMIC FIRST-CHILD HANDLE HWND INSTANTIATING-PROCEDURE KEEP-FRAME-Z-ORDER LAST-CHILD MENU-KEY2 MENU-MOUSE2 MOUSE-POINTER NAME NEXT-SIBLING NUM-DROPPED-FILES NUM-SELECTED-WIDGETS2 POPUP-MENU2 PREV-SIBLING PRIVATE-DATA SCROLL-BARS3 THREE-D TYPE WINDOW
1You can specify a context help file for all frames within an embedded window by setting its CONTEXT- HELP-FILE attribute. However, ABL does not support the CONTEXT-HELP attribute for embedded windows (see Table 128). Instead, you must set the HelpButton property on the containing form in order to enable the context-help button on the form's caption bar. This containing form can be an MDI parent form, an MDI child form, or a form that contains a WindowContainer object. Note that MDI applications generally do not use the context-help feature on their forms; this feature is most commonly used in dialog boxes.
2These attributes work on an embedded window because they apply to actions performed on the frames and field-level widgets within the window.
3 If you set the SCROLL-BARS attribute to TRUE on an embedded window, ABL handles the scrolling of frames within that window. The value of the AutoScroll property of the embedding form or WindowContainer has no effect on the scrolling features of these frames.
Table 127 describes attributes whose behavior on an embedded ABL window differs from how they behave on a non-embedded window.
Table 127: Attributes modified on an embedded ABL window Attributes Behavior changes PARENT This attribute specifies the parent of a window in an ABL window hierarchy. An embedded window cannot participate in this hierarchy. So, the PARENT attribute always returns the Unknown value (?
) for an embedded window. ABL ignores any setting of this attribute on an embedded window. SENSITIVE
HIDDEN
VISIBLE The SENSITIVE attribute indicates if a widget is enabled to receive keyboard and mouse input. The default value for the SENSITIVE attribute on a window is TRUE. Setting this attribute to FALSE on an embedded window disables input to the embedded frames, but it does not disable the non-client portions of an embedding MDI child form or any form that contains a Progress.Windows.WindowContainer object.Similarly, setting VISIBLE to FALSE or HIDDEN to TRUE on an embedded window hides the embedded frames but does not hide the .NET control container into which they have been embedded. X
Y
ROW
COLUMN When queried on an embedded window, the X, Y, ROW, and COLUMN attributes return 0, 0, 1, and 1, respectively, because these attributes return position values relative to the embedded window's container. The embedded window's position is fixed at the upper-left corner of the container’s client area. ABL ignores any setting of these attributes on an embedded window. You must set the position of any Progress.Windows.WindowContainer within its containing form using appropriate .NET properties. WIDTH-CHARS
WIDTH-PIXELS
HEIGHT-CHARS
HEIGHT-PIXELS The WIDTH-CHARS, WIDTH-PIXELS, HEIGHT-CHARS, and HEIGHT-PIXELS window attributes return the width and height, respectively, of the client area of the embedded window, just as they do in a non-embedded window. ABL ignores any setting of these attributes on an embedded window. You must set the size of any Progress.Windows.WindowContainer within its containing form using appropriate .NET properties.Note: The FULL-WIDTH-* and FULL-HEIGHT-* attributes include the size of the non-client areas of a window and, as such, are ignored for embedded windows (see Table 128). VIRTUAL-HEIGHT-CHARS
VIRTUAL-HEIGHT-PIXELS
VIRTUAL-WIDTH-CHARS
VIRTUAL-WIDTH-PIXELS These attributes work for embedded windows. They determine the size of the virtual window for scrolling frames in windows. As noted for the SCROLL-BARS attribute in Table 126, ABL handles the scrolling of frames within an embedded window. For embedded windows, ABL maintains a minimum size for the virtual window; you cannot make the size of this virtual window smaller than the physical size of the embedded window container because that would cause the container to become smaller.
Table 128 lists attributes on an embedded ABL window that ABL ignores. You can read or write these attributes without error, but they have no effect because their function has no meaning for the client area of an ABL window embedded in a .NET form. For the corresponding behavior in a .NET form object, use the appropriate .NET class members.
Table 128: Attributes ignored on an embedded ABL window ALWAYS-ON-TOP CONTEXT-HELP CONTROL-BOX DCOLOR FGCOLOR1 FONT1 FULL-HEIGHT-CHARS2 FULL-HEIGHT-PIXELS2 FULL-WIDTH-CHARS2 FULL-WIDTH-PIXELS2 ICON MAX-BUTTON MAX-HEIGHT-CHARS3 MAX-HEIGHT-PIXELS3 MAX-WIDTH-CHARS3 MAX-WIDTH-PIXELS3 MENU-BAR MESSAGE-AREA MESSAGE-AREA-FONT MIN-BUTTON MIN-HEIGHT-CHARS4 MIN-HEIGHT-PIXELS4 MIN-WIDTH-CHARS4 MIN-WIDTH-PIXELS4 PFCOLOR RESIZE SCREEN-LINES SHOW-IN-TASKBAR SMALL-ICON SMALL-TITLE STATUS-AREA STATUS-AREA-FONT TITLE TOP-ONLY WINDOW-STATE –
1These attributes only affect a window's message area and are not inherited by frames placed inside the window. Thus, they will have no affect when the frames are removed from a window and placed inside a form.
2These attributes always return the Unknown value (?
) when queried on an embedded window because there is no concept of "full" window size for an embedded window.
3These attributes always return the Unknown value (?
) when queried on an embedded window because there is no concept of "maximum" window size for an embedded window.
4These attributes always return zero (0) when queried on an embedded window. An embedded window's size is determined by the size of its container, and that container's size is independent of the values of these ABL attributes.
Table 129 describes how methods are supported on an embedded ABL window.
For an embedded ABL window, ABL frame-level (ENTRY, LEAVE, etc.) and field-level events (mouse button clicks, etc.) fire normally on the embedded frames and the widgets they contain (see the "Handle-based Object Events Reference" section). However, most window-level events do not fire because the ABL window is not visualized. You must handle .NET form events in ABL using .NET event handlers (see the "Class Events Reference" section). Table 130 describes how ABL supports window-level events for embedded ABL windows.
1As with any handle-based object, you must delete the embedded window widget when you no longer need it. You can do this in an OpenEdge GUI for .NET application, for example, by handling the .NET Closed (or FormClosed) event on the form that contains the embedded window.
2ABL does not map the WINDOW-MAXIMIZED and WINDOW-RESTORED events from the corresponding .NET form events. However, for a Progress.Windows.MdiChildForm, the WINDOW-RESIZED event fires on the embedded window when the child form is maximized or restored.
OpenEdge Release 10.2B
|