new_extern_windowT_new_extern_windowNewExternWindowNewExternWindow (Operator)

Name

new_extern_windowT_new_extern_windowNewExternWindowNewExternWindow — Erzeugen eines virtuellen Grafikfensters unter Windows.

Signatur

new_extern_window( : : WINHWnd, Row, Column, Width, Height : WindowHandle)

Herror T_new_extern_window(const Htuple WINHWnd, const Htuple Row, const Htuple Column, const Htuple Width, const Htuple Height, Htuple* WindowHandle)

void NewExternWindow(const HTuple& WINHWnd, const HTuple& Row, const HTuple& Column, const HTuple& Width, const HTuple& Height, HTuple* WindowHandle)

void HWindow::NewExternWindow(void* WINHWnd, Hlong Row, Hlong Column, Hlong Width, Hlong Height)

static void HOperatorSet.NewExternWindow(HTuple WINHWnd, HTuple row, HTuple column, HTuple width, HTuple height, out HTuple windowHandle)

void HWindow.NewExternWindow(IntPtr WINHWnd, int row, int column, int width, int height)

Beschreibung

new_extern_windownew_extern_windowNewExternWindowNewExternWindowNewExternWindow ö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 WINHWndWINHWndWINHWndWINHWndWINHWnd ü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:

Die aktuell gesetzten Werte können mit Operatoren wie get_shapeget_shapeGetShapeGetShapeGetShape abgefragt werden. Da einige Parameter durch die Hardware (Auflösung/Farben) bestimmt werden, kann man mit Operatoren wie query_colorquery_colorQueryColorQueryColorQueryColor die aktuell verfügbaren Ressourcen abfragen.

Im Parameter WINHWndWINHWndWINHWndWINHWndWINHWnd 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 WidthWidthWidthWidthwidth und HeightHeightHeightHeightheight 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_systemset_systemSetSystemSetSystemSetSystem). 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_extentsset_window_extentsSetWindowExtentsSetWindowExtentsSetWindowExtents kann die Größe des (externen) Fensters auch vom Programm aus geändert werden. Beachten Sie bitte, dass set_window_extentsset_window_extentsSetWindowExtentsSetWindowExtentsSetWindowExtents 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_regiondisp_regionDispRegionDispRegionDispRegion oder disp_circledisp_circleDispCircleDispCircleDispCircle verwendet wird, wird mit set_rgbset_rgbSetRgbSetRgbSetRgb, set_hsiset_hsiSetHsiSetHsiSetHsi oder set_grayset_graySetGraySetGraySetGray festgelegt. Mit set_insertset_insertSetInsertSetInsertSetInsert wird eingestellt, wie die Graphik mit dem Inhalt des Bildwiederholspeichers verknüpft wird. Hierbei kann z.B. mit set_insert(::'not':)set_insert("not")SetInsert("not")SetInsert("not")SetInsert("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_imagedisp_imageDispImageDispImageDispImage,disp_regiondisp_regionDispRegionDispRegionDispRegion, etc.) kann mit dem Operator set_partset_partSetPartSetPartSetPart 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.

Achtung

Es ist zu beachten, dass die Parameter RowRowRowRowrow, ColumnColumnColumnColumncolumn, WidthWidthWidthWidthwidth und HeightHeightHeightHeightheight 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.

Ausführungsinformationen

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.

Parameter

WINHWndWINHWndWINHWndWINHWndWINHWnd (input_control)  pointer HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Windows-Fensterhandle eines vorher geöffneten Fensters.

Restriktion: WINHWnd != 0

RowRowRowRowrow (input_control)  rectangle.origin.y HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenkoordinate der linken oberen Ecke.

Defaultwert: 0

Restriktion: Row >= 0

ColumnColumnColumnColumncolumn (input_control)  rectangle.origin.x HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenkoordinate der linken oberen Ecke.

Defaultwert: 0

Restriktion: Column >= 0

WidthWidthWidthWidthwidth (input_control)  rectangle.extent.x HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite des Fensters.

Defaultwert: 512

Restriktion: Width > 0 || Width == -1

HeightHeightHeightHeightheight (input_control)  rectangle.extent.y HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe des Fensters.

Defaultwert: 512

Restriktion: Height > 0 || Height == -1

WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle (output_control)  window HWindow, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Fenster-Handle.

Beispiel (C++ (HALCON 5.0-10.0))

// Needs to be embedded into an application framework,
// see examples/cpp/mfc/MatchingExtWin.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert new_extern_windownew_extern_windowNewExternWindowNewExternWindowNewExternWindow den Wert 2 (H_MSG_TRUE). Andernfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDb

Nachfolger

set_colorset_colorSetColorSetColorSetColor, query_window_typequery_window_typeQueryWindowTypeQueryWindowTypeQueryWindowType, get_window_typeget_window_typeGetWindowTypeGetWindowTypeGetWindowType, set_window_typeset_window_typeSetWindowTypeSetWindowTypeSetWindowType, get_mpositionget_mpositionGetMpositionGetMpositionGetMposition, set_tpositionset_tpositionSetTpositionSetTpositionSetTposition, set_tshapeset_tshapeSetTshapeSetTshapeSetTshape, set_window_extentsset_window_extentsSetWindowExtentsSetWindowExtentsSetWindowExtents, get_window_extentsget_window_extentsGetWindowExtentsGetWindowExtentsGetWindowExtents, query_colorquery_colorQueryColorQueryColorQueryColor, set_checkset_checkSetCheckSetCheckSetCheck, set_systemset_systemSetSystemSetSystemSetSystem

Alternativen

open_windowopen_windowOpenWindowOpenWindowOpenWindow

Siehe auch

open_windowopen_windowOpenWindowOpenWindowOpenWindow, disp_regiondisp_regionDispRegionDispRegionDispRegion, disp_imagedisp_imageDispImageDispImageDispImage, disp_colordisp_colorDispColorDispColorDispColor, set_lutset_lutSetLutSetLutSetLut, query_colorquery_colorQueryColorQueryColorQueryColor, set_colorset_colorSetColorSetColorSetColor, set_rgbset_rgbSetRgbSetRgbSetRgb, set_hsiset_hsiSetHsiSetHsiSetHsi, set_pixelset_pixelSetPixelSetPixelSetPixel, set_grayset_graySetGraySetGraySetGray, set_partset_partSetPartSetPartSetPart, set_part_styleset_part_styleSetPartStyleSetPartStyleSetPartStyle, query_window_typequery_window_typeQueryWindowTypeQueryWindowTypeQueryWindowType, get_window_typeget_window_typeGetWindowTypeGetWindowTypeGetWindowType, set_window_typeset_window_typeSetWindowTypeSetWindowTypeSetWindowType, get_mpositionget_mpositionGetMpositionGetMpositionGetMposition, set_tpositionset_tpositionSetTpositionSetTpositionSetTposition, set_window_extentsset_window_extentsSetWindowExtentsSetWindowExtentsSetWindowExtents, get_window_extentsget_window_extentsGetWindowExtentsGetWindowExtentsGetWindowExtents, set_window_attrset_window_attrSetWindowAttrSetWindowAttrSetWindowAttr, set_checkset_checkSetCheckSetCheckSetCheck, set_systemset_systemSetSystemSetSystemSetSystem

Modul

Foundation