Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Confirm
Close Dialog

User Image
David Twiss990318
1 discussion post
I'm just getting started with Display Fusion and its great. The code below mitrrors the selected region to a second monitor and tries to maximise and hide the title bar. I'v had all the parts working [drawn from previous posts] but the ensemble falls short; not sure why.

Code

using System;
using System.Drawing;

// The 'windowHandle' parameter will contain the window handle for the:
//   - Active window when run by hotkey
//   - Trigger target when run by a Trigger rule
//   - TitleBar Button owner when run by a TitleBar Button
//   - Jump List owner when run from a Taskbar Jump List
//   - Currently focused window if none of these match
public static class DisplayFusionFunction
{
    public static void Run(IntPtr windowHandle)
    {
        // your code goes here
        windowHandle = BFS.DisplayFusion.MirrorSelectedArea(196, 86, 800, 600);
        BFS.Window.MoveToMonitorMaximized(2, windowHandle);
        
                //get the window styles
        BFS.WindowEnum.WindowStyle style = BFS.Window.GetWindowStyle(windowHandle);
        

        //make sure to remove the styles. just toggling these settings may turn on something we dont want
        style &= ~BFS.WindowEnum.WindowStyle.WS_CAPTION;
        style &= ~BFS.WindowEnum.WindowStyle.WS_SYSMENU;
        style &= ~BFS.WindowEnum.WindowStyle.WS_THICKFRAME__SIZEBOX;
        style &= ~BFS.WindowEnum.WindowStyle.WS_MINIMIZEBOX;
        
        //get the bounds of the monitor that the window is in
        Rectangle bounds = BFS.Monitor.GetMonitorBoundsByWindow(windowHandle);
            
        //set the window style
        BFS.Window.SetWindowStyle(style, windowHandle);
                        
        //size and position the window to be fullscreen within the monitor
        BFS.Window.SetSizeAndLocation(windowHandle, bounds.X, bounds.Y, bounds.Width, bounds.Height);

    }
    
        //this is a function that will save the window size and position in window properties
    private static void SaveWindowSize(IntPtr windowHandle)
    {
        Rectangle bounds = BFS.Window.GetBounds(windowHandle);
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_X", new IntPtr(bounds.X));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_Y", new IntPtr(bounds.Y));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_Width", new IntPtr(bounds.Width));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_Height", new IntPtr(bounds.Height));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_IsMaximized", new IntPtr(BFS.Window.IsMaximized(windowHandle) ? 1 : 0));
    }
    
    private static Rectangle GetSavedWindowSize(IntPtr windowHandle, out bool isMaximized)
    {
        Rectangle bounds = new Rectangle();
        bounds.X = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_X").ToInt32();
        bounds.Y = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_Y").ToInt32();
        bounds.Width = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_Width").ToInt32();
        bounds.Height = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_Height").ToInt32();
        isMaximized = (BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_IsMaximized").ToInt32() == 1);
        return bounds;
    }
}


grateful for any assistance
David
Feb 18, 2020  • #1
Keith Lammers (BFS)'s profile on WallpaperFusion.com
I'll pass this over to one of our developers to see if he can help out here.

Thanks!
Feb 19, 2020  • #2
Keith Lammers (BFS)'s profile on WallpaperFusion.com
We've just released a new DisplayFusion Beta version, and we've added a new function that should help out here. Try this one out: BFS.DisplayFusion.MirrorSelectedAreaNoBorder

Hope that helps!
Mar 6, 2020  • #3
Subscribe to this discussion topic using RSS
Was this helpful?  Login to Vote(-)  Login to Vote(-)