I am currently working on a small overlay project in Gamemaker that I want to always render on top, have a transparent background, and allow clickthrough to the window behind it. Using GML extensions and a dll has worked for the transparent background part, although nothing I have tried for the rest have worked.
Using SetWindowPos for HWND_TOPMOST or calling it with HWND_TOP every time it get minimized has seemingly no effect.This thread seems to be close to what I am looking for, except I do not need the directX rendering as Gamemaker should do that for me, and I do not think it will connect with the GML extension that I need it to.
#include "pch.h"#include <dwmapi.h>//[DllImport("User32.dll")]//#include <User32.dll>extern "C" __declspec(dllexport) void DLLMakeWindowTransparent2(HWND hwnd) { //get HWND from Gamemaker //makes the background of the gamemaker window transparent, this works fantastically MARGINS margins = { -1,0,0,0 }; DwmExtendFrameIntoClientArea(hwnd, &margins);}extern "C" __declspec(dllexport) void DLLMakeWindowTop(HWND hwnd) { //should force the window to always display on top, but hasnt worked //SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);}