| Operatoren |
get_os_window_handle — Auslesen der Betriebssystem-Fenster-Handles.
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.
Fenster-Handle.
Betriebssystem-Fenster-Handle.
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
| Operatoren |