KlassenKlassenKlassenKlassen | | | | Operatoren

new_extern_windownew_extern_windowNewExternWindownew_extern_windowNewExternWindowNewExternWindow (Operator)

Name

new_extern_windownew_extern_windowNewExternWindownew_extern_windowNewExternWindowNewExternWindow — Erzeugen eines virtuellen Grafikfensters unter Windows.

Signatur

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

Herror new_extern_window(const Hlong WINHWnd, const Hlong Row, const Hlong Column, const Hlong Width, const Hlong Height, Hlong* WindowHandle)

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

Herror new_extern_window(const HTuple& WINHWnd, const HTuple& Row, const HTuple& Column, const HTuple& Width, const HTuple& Height, Hlong* WindowHandle)

Hlong HWindow::NewExternWindow(const HTuple& WINHWnd, const HTuple& Row, const HTuple& Column, const HTuple& Width, const HTuple& Height) const

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)

void HOperatorSetX.NewExternWindow(
[in] VARIANT WINHWnd, [in] VARIANT Row, [in] VARIANT Column, [in] VARIANT Width, [in] VARIANT Height, [out] VARIANT* WindowHandle)

void HWindowX.NewExternWindow(
[in] Hlong WINHWnd, [in] Hlong Row, [in] Hlong Column, [in] Hlong Width, [in] 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_windowNewExternWindownew_extern_windowNewExternWindowNewExternWindow öffnet ein neues virtuelles Fenster. Bitte beachten Sie, dass das nur auf Windows-Systemen funktioniert.

Virtuell bedeutet hier, dass kein neues Fenster erstellt wird, sondern dass das Fenster, dessen Window-Handle im Parameter WINHWndWINHWndWINHWndWINHWndWINHWndWINHWnd übergeben wird, zur Ausgabe von Grauwertdaten, Regionen, Grafik sowie für Textausgabe verwendet wird. Einstellungen für die Ausgabe von Daten (z.B. die Farbe) können entweder über die Befehle von HALCON oder durch den entsprechenden Windows-Befehl erfolgen.

Beispiel: Setzen der Zeichenfarbe:

HALCON:
  set_color(WindowHandle,"green");
  disp_region(WindowHandle,region);

Windows:
  HPEN* penold;
  HPEN penGreen = CreatePen(PS_SOLID,1,RGB(0,255,0));
  pen = (HPEN*)SelectObject(WINHDC,penGreen);
  disp_region(WindowHandle,region);

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_shapeGetShapeget_shapeGetShapeGetShape abgefragt werden. Da einige Parameter durch die Hardware (Auflösung/Farben) bestimmt werden, kann man mit Operatoren wie query_colorquery_colorQueryColorquery_colorQueryColorQueryColor die aktuell verfügbaren Ressourcen abfragen.

Im Parameter WINHWndWINHWndWINHWndWINHWndWINHWndWINHWnd 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 WidthWidthWidthWidthWidthwidth und HeightHeightHeightHeightHeightheight 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_systemSetSystemset_systemSetSystemSetSystem). 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_extentsSetWindowExtentsset_window_extentsSetWindowExtentsSetWindowExtents kann die Größe des (externen) Fensters auch vom Programm aus geändert werden. Beachten Sie bitte, dass set_window_extentsset_window_extentsSetWindowExtentsset_window_extentsSetWindowExtentsSetWindowExtents 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_regionDispRegiondisp_regionDispRegionDispRegion oder disp_circledisp_circleDispCircledisp_circleDispCircleDispCircle verwendet wird, wird mit set_rgbset_rgbSetRgbset_rgbSetRgbSetRgb, set_hsiset_hsiSetHsiset_hsiSetHsiSetHsi, set_grayset_graySetGrayset_graySetGraySetGray oder set_pixelset_pixelSetPixelset_pixelSetPixelSetPixel festgelegt. Mit set_insertset_insertSetInsertset_insertSetInsertSetInsert 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")set_insert("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_imageDispImagedisp_imageDispImageDispImage,disp_regiondisp_regionDispRegiondisp_regionDispRegionDispRegion, etc.) kann mit dem Operator set_partset_partSetPartset_partSetPartSetPart 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.

Die Schritte zur Verwendung von new_extern_window:

Erzeugung:

Verwendung:

Löschen:

Achtung

Es ist zu beachten, dass die Parameter RowRowRowRowRowrow, ColumnColumnColumnColumnColumncolumn, WidthWidthWidthWidthWidthwidth und HeightHeightHeightHeightHeightheight 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.

Parallelisierung

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

WINHWndWINHWndWINHWndWINHWndWINHWndWINHWnd (input_control)  pointer HTupleHTupleHTupleVARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Windows-Fensterhandle eines vorher geöffneten Fensters.

Restriktion: WINHWnd != 0

RowRowRowRowRowrow (input_control)  rectangle.origin.y HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Zeilenkoordinate der linken oberen Ecke.

Defaultwert: 0

Restriktion: Row >= 0

ColumnColumnColumnColumnColumncolumn (input_control)  rectangle.origin.x HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Spaltenkoordinate der linken oberen Ecke.

Defaultwert: 0

Restriktion: Column >= 0

WidthWidthWidthWidthWidthwidth (input_control)  rectangle.extent.x HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Breite des Fensters.

Defaultwert: 512

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

HeightHeightHeightHeightHeightheight (input_control)  rectangle.extent.y HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Höhe des Fensters.

Defaultwert: 512

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

WindowHandleWindowHandleWindowHandleWindowHandleWindowHandlewindowHandle (output_control)  window HWindow, HTupleHTupleHTupleHWindowX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

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_windowNewExternWindownew_extern_windowNewExternWindowNewExternWindow den Wert 2 (H_MSG_TRUE). Andernfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

reset_obj_dbreset_obj_dbResetObjDbreset_obj_dbResetObjDbResetObjDb

Nachfolger

set_colorset_colorSetColorset_colorSetColorSetColor, query_window_typequery_window_typeQueryWindowTypequery_window_typeQueryWindowTypeQueryWindowType, get_window_typeget_window_typeGetWindowTypeget_window_typeGetWindowTypeGetWindowType, set_window_typeset_window_typeSetWindowTypeset_window_typeSetWindowTypeSetWindowType, get_mpositionget_mpositionGetMpositionget_mpositionGetMpositionGetMposition, set_tpositionset_tpositionSetTpositionset_tpositionSetTpositionSetTposition, set_tshapeset_tshapeSetTshapeset_tshapeSetTshapeSetTshape, set_window_extentsset_window_extentsSetWindowExtentsset_window_extentsSetWindowExtentsSetWindowExtents, get_window_extentsget_window_extentsGetWindowExtentsget_window_extentsGetWindowExtentsGetWindowExtents, query_colorquery_colorQueryColorquery_colorQueryColorQueryColor, set_checkset_checkSetCheckset_checkSetCheckSetCheck, set_systemset_systemSetSystemset_systemSetSystemSetSystem

Alternativen

open_windowopen_windowOpenWindowopen_windowOpenWindowOpenWindow, open_textwindowopen_textwindowOpenTextwindowopen_textwindowOpenTextwindowOpenTextwindow

Siehe auch

open_windowopen_windowOpenWindowopen_windowOpenWindowOpenWindow, disp_regiondisp_regionDispRegiondisp_regionDispRegionDispRegion, disp_imagedisp_imageDispImagedisp_imageDispImageDispImage, disp_colordisp_colorDispColordisp_colorDispColorDispColor, set_lutset_lutSetLutset_lutSetLutSetLut, query_colorquery_colorQueryColorquery_colorQueryColorQueryColor, set_colorset_colorSetColorset_colorSetColorSetColor, set_rgbset_rgbSetRgbset_rgbSetRgbSetRgb, set_hsiset_hsiSetHsiset_hsiSetHsiSetHsi, set_pixelset_pixelSetPixelset_pixelSetPixelSetPixel, set_grayset_graySetGrayset_graySetGraySetGray, set_partset_partSetPartset_partSetPartSetPart, set_part_styleset_part_styleSetPartStyleset_part_styleSetPartStyleSetPartStyle, query_window_typequery_window_typeQueryWindowTypequery_window_typeQueryWindowTypeQueryWindowType, get_window_typeget_window_typeGetWindowTypeget_window_typeGetWindowTypeGetWindowType, set_window_typeset_window_typeSetWindowTypeset_window_typeSetWindowTypeSetWindowType, get_mpositionget_mpositionGetMpositionget_mpositionGetMpositionGetMposition, set_tpositionset_tpositionSetTpositionset_tpositionSetTpositionSetTposition, set_window_extentsset_window_extentsSetWindowExtentsset_window_extentsSetWindowExtentsSetWindowExtents, get_window_extentsget_window_extentsGetWindowExtentsget_window_extentsGetWindowExtentsGetWindowExtents, set_window_attrset_window_attrSetWindowAttrset_window_attrSetWindowAttrSetWindowAttr, set_checkset_checkSetCheckset_checkSetCheckSetCheck, set_systemset_systemSetSystemset_systemSetSystemSetSystem

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren