I've modified the MagnifierSample from the Windows-classic-samples, turning it into a lens magnifier. However when I open the Start Menu by pressing the Start button my magnification lens window is pushed to the background and is unable to magnify the start menu. Is this by design or are we able to overcome this? I wish to build a magnifier doing this for accessibility features. The built-in Magnifier is able to overcome this as seen below:
Windows built-in magnifier:
My modified sample:
I use...
CreateWindowEx(WS_EX_TOPMOST | WS_EX_LAYERED | WS_EX_TRANSPARENT,
WindowClassName, WindowTitle,
RESTOREDWINDOWSTYLES,
0, 0, hostWindowRect.right, hostWindowRect.bottom, NULL, NULL, hInst, NULL);
...to create the host window. And...
SetWindowPos(hwndHost, HWND_TOPMOST, mousePoint.x - (int)(MAGFACTOR * width / 2), mousePoint.y - (int)(MAGFACTOR * height / 2), width, height,
SWP_NOACTIVATE | SWP_NOSIZE);
...to reposition and reclaim topmost status.
However, the start menu appears immune to this and will always have topmost status no matter what. Seeing as the built-in magnifier is able to lens magnify the taskbar and start menu I hope it is possible to do as well. Does anyone know what needs to be done or if it is possible to do at all?
Thank you!
The full modified source code:
MagnifierSample.cpp