new_extern_window
— Erzeugen eines virtuellen Grafikfensters unter Windows.
new_extern_window
öffnet ein neues virtuelles Fenster.
Bitte beachten Sie, dass das nur auf Windows-Systemen funktioniert und
Zeichenobjekte nicht unterstützt sind.
Virtuell bedeutet hier, dass kein neues Fenster erstellt
wird, sondern dass das Fenster, dessen Window-Handle im
Parameter WINHWnd
übergeben wird, zur Ausgabe von
Grauwertdaten, Regionen, Grafik sowie für Textausgabe verwendet
wird.
Auf Mausinteraktionen basierende Operatoren wie zum Beispiel draw_rectangle1 können auf externen Fenstern nicht verwendet werden. Die folgenden Operatoren können verwendet werden:
Regionen:
set_color
, set_rgb
, set_hsi
,
set_gray
,
set_shape
, set_line_width
, set_insert
,
set_line_style
, set_draw
Bildausschnitt:
set_part
Text:
set_font
Die aktuell gesetzten Werte können mit Operatoren wie
get_shape
abgefragt werden. Da einige Parameter durch
die Hardware (Auflösung/Farben) bestimmt werden, kann man mit
Operatoren wie query_color
die aktuell verfügbaren
Ressourcen abfragen.
Im Parameter WINHWnd
wird der Fensterhandle des
Windows-Fensters übergeben, in das die Ausgaben von HALCON
erfolgen sollen.
Der Ursprung des Koordinatensystems des Fensters liegt in der linken oberen Ecke (Koordinaten: (0,0)). Nach unten nimmt der Zeilenindex zu (maximal: Fensterhöhe-1), nach rechts steigt der Spaltenindex (maximal: Fensterbreite-1) an.
Für die Parameter Width
und Height
kann der Wert
-1 als Größe verwendet werden. Dies bedeutet, dass der
entsprechende Wert automatisch bestimmt werden soll. Dies ist
insbesondere dann von Bedeutung, wenn das Pixelverhältnis nicht
gleich 1.0 ist (siehe set_system
). Wird einer der beiden
Parameter als -1 angegeben, so wird er durch die Größe
bestimmt, die sich aus dem Pixelverhältnis ergibt. Werden beide
Parameter mit -1 festgelegt, so werden sie auf das aktuelle
Bildformat gesetzt.
Die Position und Größe des Fensters kann sich im Laufe des Programms
ändern, z.B. durch externe Eingriffe (Windowmanager). Mit dem
Operator set_window_extents
kann die Größe des (externen)
Fensters auch vom Programm aus geändert werden. Beachten Sie bitte,
dass set_window_extents
auch die Position von Fenstern
ändern könnte, allerdings die Position eines externen Fensters unter
Windows nicht geändert werden kann.
Die Farbe für Graphik und Schrift, die für Ausgabeprozeduren wie
disp_region
oder disp_circle
verwendet wird, wird
mit set_rgb
, set_hsi
oder set_gray
festgelegt. Mit set_insert
wird
eingestellt, wie die Graphik mit dem Inhalt des
Bildwiederholspeichers verknüpft wird. Hierbei kann z.B. mit
set_insert(::'not':)
erreicht werden, dass nach zweimaligem
Zeichnen eines Kreises an der gleichen Position dieser wieder
beseitigt wird.
Der Inhalt von Fenstern wird nicht gesichert, falls sich Fenster überlappen. Dies muss durch den Programmcode, der das Windows-Fenster verwaltet, sichergestellt werden.
Für die Ausgabe von Graphik (disp_image
,disp_region
,
etc.) kann mit dem Operator set_part
das Fenster so
eingestellt werden, dass es einen logischen Ausschnitt des
Bildformates darstellt. Dies hat insbesondere zur Folge, dass von
Bildern und Regionen lediglich dieser Ausschnitt (entsprechend
vergrößert) ausgegeben wird. Bevor Sie Ihr Fenster schließen,
müssen Sie das HALCON-Fenster schließen.
Es ist zu beachten, dass die Parameter Row
,
Column
, Width
und Height
durch das
Ausgabegerät, d.h. die Größe des Windows-NT-Desktops, beschränkt
sind.
Ebenso ist zu beachten, dass sich auf Mausinteraktionen basierende
Operatoren wie zum Beispiel draw_rectangle1 auf externen Fenstern
nicht verwenden lassen.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
WINHWnd
(input_control) pointer →
(integer)
Windows-Fensterhandle eines vorher geöffneten Fensters.
Restriktion: WINHWnd != 0
Row
(input_control) rectangle.origin.y →
(integer)
Zeilenkoordinate der linken oberen Ecke.
Defaultwert: 0
Restriktion: Row >= 0
Column
(input_control) rectangle.origin.x →
(integer)
Spaltenkoordinate der linken oberen Ecke.
Defaultwert: 0
Restriktion: Column >= 0
Width
(input_control) rectangle.extent.x →
(integer)
Breite des Fensters.
Defaultwert: 512
Restriktion: Width > 0 || Width == -1
Height
(input_control) rectangle.extent.y →
(integer)
Höhe des Fensters.
Defaultwert: 512
Restriktion: Height > 0 || Height == -1
WindowHandle
(output_control) window →
(handle)
Fenster-Handle.
// Needs to be embedded into an application framework, // see examples/cpp/mfc/MatchingExtWin.
Sind die Parameterwerte korrekt, dann liefert
new_extern_window
den Wert 2 (H_MSG_TRUE). Andernfalls wird eine
Fehlerbehandlung durchgeführt.
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