get_os_window_handle
— Auslesen der Betriebssystem-Fenster-Handles.
Dieser Operator kann nicht in HDevelop-Grafikfenstern verwendet werden, die
mit dev_open_window
geöffnet wurden.
get_os_window_handle( : : WindowHandle : OSWindowHandle, OSDisplayHandle)
get_os_window_handle
gibt den Betriebssystem-Fenster-Handle
des HALCON-Fensters WindowHandle
in OSWindowHandle
zurück. Unter unixartigen Systemen wird zusätzlich in OSDisplayHandle
der Betriebssystem-Display-Handle des HALCON-Fensters
zurückgeliefert. Dies kann dazu verwendet werden, um mit
Betriebssystem-Funktionen auf das Fenster zuzugreifen, um z.B. darin
benutzerdefiniert zu zeichnen. Unter Windows kann
OSWindowHandle
in eine Variable vom Typ HWND umgewandelt
werden. Unter unixartigen Systemen kann OSWindowHandle
in eine
Variable vom Typ Window umgewandelt werden und
OSDisplayHandle
in den Typ Display.
WindowHandle
(input_control) window →
(handle)
Fenster-Handle.
OSWindowHandle
(output_control) pointer →
(integer)
Betriebssystem-Fenster-Handle.
OSDisplayHandle
(output_control) pointer →
(integer)
Betriebssystem-Display-Handle (nur unter unixartigen Systemen).
/* Draw a line into a HALCON window under Unix-like systems using X11 calls. */ #include "HalconC.h" #include <X11/X.h> #include <X11/Xlib.h> int main(int argc, char **argv) { Hlong hwin, win, disp; Display *display; Window window; GC gc; XGCValues values; static char dashes[] = { 20, 20 }; open_window(0, 0, 500, 500, 0, "visible", "", &hwin); get_os_window_handle(hwin, &win, &disp); display = (Display *)disp; window = (Window)win; gc = XCreateGC(display, window, 0, &values); XSetFunction(display, gc, GXset); XSetLineAttributes(display, gc, 10, LineOnOffDash, CapRound, JoinRound); XSetDashes(display, gc, 0, dashes, 2); XSetForeground(display, gc, WhitePixel(display, DefaultScreen(display))); XSetBackground(display, gc, BlackPixel(display, DefaultScreen(display))); XDrawLine(display, win, gc, 20, 20, 480, 480); XFlush(display); XFreeGC(display, gc); wait_seconds(5); return 0; } /* Draw a line into a HALCON window under Windows using GDI calls. */ #include "HalconC.h" #include "windows.h" int main(int argc, char **argv) { Hlong hwin, win, disp; HDC hdc; HPEN hpen; HPEN *hpen_old; LOGBRUSH logbrush; POINT point; static DWORD dashes[] = { 20, 20 }; open_window(0, 0, 500, 500, 0, "visible", "", &hwin); get_os_window_handle(hwin, &win, &disp); logbrush.lbColor = RGB(255,255,255); logbrush.lbStyle = BS_SOLID; hpen = ExtCreatePen(PS_USERSTYLE|PS_GEOMETRIC, 10, &logbrush, 2, dashes); hdc = GetDC((HWND)win); hpen_old = (HPEN *)SelectObject(hdc, hpen); MoveToEx(hdc, 20, 20, &point); LineTo(hdc, 480, 480); DeleteObject(SelectObject(hdc, hpen_old)); ReleaseDC((HWND)win, hdc); wait_seconds(5); return 0; }
get_os_window_handle
liefert den Wert 2 (H_MSG_TRUE), falls das Fenster
gültig ist. Ansonsten wird eine Fehlerbehandlung durchgeführt.
Foundation