new_extern_window
— Create a virtual graphics window under Windows.
new_extern_window
opens a new virtual window.
Note that this only works on Windows systems and drawing objects are not
supported.
Virtual means that a new window will not be created, but the window
whose window handle is given in the parameter WINHWnd
is used
to perform output of gray value data, regions, graphics as well as
to perform textual output.
All operators that allow the user to define graphical primitives through mouse interactions, like for example draw_rectangle1, do not work on external windows. The following operators can be used:
Regions:
set_color
, set_rgb
, set_hsi
,
set_gray
, set_shape
,
set_line_width
, set_insert
,
set_line_style
, set_draw
Image part:
set_part
Text:
set_font
You may query current set values by calling operators like
get_shape
. As some parameters are specified through the
hardware (Resolution/Colors), you may query current available
resources by calling operators like query_color
.
The parameter WINHWnd
is used to pass the window handle of
the window in which output should be done.
The origin of the coordinate system of the window resides in the
upper left corner (coordinates: (0,0)). The row index grows downward
(maximum: Height
-1), the column index grows to the right
(maximal: Width
-1).
You may use the value -1 for parameters Width
and
Height
. This means, that the corresponding value is chosen
automatically. In particular, this is important if the aspect ratio
of the pixels is not 1.0 (see set_system
). If one of the
two parameters is set to -1, it will be chosen through the
size which results out of the aspect ratio of the pixels. If both
parameters are set to -1, they will be set to the current
image format.
The position and size of a window may change during runtime of a
program, e.g., through external influences (window manager). With
the operator set_window_extents
, you can change the size of
the (external) widow via the program. Note that
set_window_extents
offers to change the position as well,
but you cannot change the position of an external window under
Windows.
Opening a window causes the assignment of a default font. It is
used in connection with operators like write_string
and you
may change it by performing set_font
after calling
open_window
. On the other hand, you have the possibility to
specify a default font by calling
set_system(::'default_font',<Fontname>:)
before opening a
window (and all following windows; see also query_font
).
You may set the color of graphics and font, which is used for output
operators like disp_region
or disp_circle
, by
calling set_rgb
, set_hsi
or set_gray
.
Calling set_insert
specifies how
graphics is combined with the content of the image repeat memory.
Thereto you may achieve by calling, e.g., set_insert
(::'not':)
to eliminate the font after writing text twice at the same position.
The content of the window is not saved, if other windows overlap the window. This must be done in the program code that handles the window in the calling program.
For graphical output (disp_image
,disp_region
, etc.)
you may adjust the window by calling the operator set_part
in
order to represent a logical clipping of the image format. In
particular this implies that only this part (appropriately scaled)
of images and regions is displayed. Before you close your window,
you have to close the HALCON-window.
Note that parameters as Row
, Column
,
Width
and Height
are constrained through the
output device, i.e., the size of the Windows NT desktop.
Furthermore, be aware that all operators that allow the user to
define graphical primitives through mouse interactions, like for
example draw_rectangle1, do not work on external windows.
This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.
WINHWnd
(input_control) pointer →
(integer)
Windows window handle of a previously created window.
Restriction: WINHWnd != 0
Row
(input_control) rectangle.origin.y →
(integer)
Row coordinate of upper left corner.
Default value: 0
Restriction: Row >= 0
Column
(input_control) rectangle.origin.x →
(integer)
Column coordinate of upper left corner.
Default value: 0
Restriction: Column >= 0
Width
(input_control) rectangle.extent.x →
(integer)
Width of the window.
Default value: 512
Restriction: Width > 0 || Width == -1
Height
(input_control) rectangle.extent.y →
(integer)
Height of the window.
Default value: 512
Restriction: Height > 0 || Height == -1
WindowHandle
(output_control) window →
(handle)
Window handle.
// Needs to be embedded into an application framework, // see examples/cpp/mfc/MatchingExtWin.
If the values of the specified parameters are correct
new_extern_window
returns TRUE. If necessary, an exception
is raised.
set_color
,
query_window_type
,
get_window_type
,
set_window_type
,
get_mposition
,
set_tposition
,
set_tshape
,
set_window_extents
,
get_window_extents
,
query_color
,
set_check
,
set_system
open_window
,
disp_region
,
disp_image
,
disp_color
,
set_lut
,
query_color
,
set_color
,
set_rgb
,
set_hsi
,
set_pixel
,
set_gray
,
set_part
,
set_part_style
,
query_window_type
,
get_window_type
,
set_window_type
,
get_mposition
,
set_tposition
,
set_window_extents
,
get_window_extents
,
set_window_attr
,
set_check
,
set_system
Foundation