App always on top

On windows, I’m looking to program the app to always be on top. Even on top of the windows toolbar. Let’s say my screen resolution is 1024,768, my app is also 1024,768 and should cover up the windows toolbar. Similar to how it would look on a kiosk touchscreen. I’m trying to do this without just setting the windows toolbar to auto-hide. Thanks.

Set your window’s FullScreen property to True, MenuBarVisible to False (to hide the Taskbar). Check Windows Functionality Suite for the code to set the window TopMost.

Would not a global floating window frame do it as well?

Sure, but that also modifies the window frame from a standard Document frame, if I remember correctly. There may also be other undesired effects. The HWND_TOPMOST API functionality gives the most control.

1 Like

i read windows 10 pro have a real kiosk mode to run one uwp app from ms store in a special user account.

1 Like

Probably so, with UWP+XAML which we don’t have. We have Win32.

Ah yes. Global floating windows existed since Mac OS 9 and I think they come from there.
I’m not sure whether OS X supports them the same way OS 9 did, but as OS X also supports level for windows (and Linux/Windows do as well), perhaps Xojo should deprecate the GFW frame and add another property to stay on top?

Well, he’s asking about Windows. That window frame is probably perfect for kiosk apps on macOS, but I had some issues once upon a time so I went with the Win32 API. Aaron even built a module for Windows kiosk apps and put it in WFS, IIRC.

With MBS Xojo Win Plugin, you could just use the WinTopMostWindowMBS property:

window1.WinTopMostWindowMBS = true

I wrote a Xojo Desktop (Mac and Win) app that was forced fullscreen for children using a normal Document window. I also used the Activate event to force the user back to the Xojo app in case they used Command-Tab. The parent needed a special key command to quit. So it can work without a Global window.

Thanks everyone. It looks like there are multiple solutions here that would work. I was able to get the results I wanted by changing the window to a moveable modal. With that I could get the message boxes to not be covered by the window.