2017-04-07 5 views
0

Ich habe ein Problem, mein Fenster ein "Click-through" -Fenster zu machen. Ich habe einige Methoden ausprobiert, die ich online für WindowsAPI gefunden habe, aber ohne Glück wird die Maus das erstellte Fenster nicht passieren.Wie wird ein OpenCV-Fenster als Click-through-Fenster festgelegt?

Mein Betriebssystem ist Windows 10.

Irgendwelche Lösungen? Danke.

Antwort

1

Ok, endlich das Problem mit den Windows-API-Funktionen gefunden. das Handle, das an sie übergeben wurde, war falsch, das opencv cvGetWindowHandle() gibt das falsche Handle zurück, das Verwenden des Handle-Returns von FindWindow() konnte ich meinen Fensterklick vornehmen.

//-Init an opencv window 
cv::namedWindow("foo"); 

HWND hwnd = FindWindow(NULL,"foo"); //-Work! 
HWND hwnd = (HWND)cvGetWindowHandle("foo");//-Doesn't Work. 

//-Set window to be click-through. 
LONG lExStyle = GetWindowLong(hwnd, GWL_EXSTYLE); 
lExStyle |= WS_EX_TRANSPARENT | WS_EX_LAYERED; 
SetWindowLong(hwnd, GWL_EXSTYLE, lExStyle); 

//-Set the window to always be on top. 
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); 
Verwandte Themen