void SubClassingWin32() { MauiWinUIApplication.Current.Services?.InvokeLifecycleEvents <WindowsLifecycle.OnPlatformWindowSubclassed>( del => del(this, new WindowsPlatformWindowSubclassedEventArgs(WindowHandle))); newWndProc = new PlatformMethods.WindowProc(NewWindowProc); oldWndProc = PlatformMethods.SetWindowLongPtr(WindowHandle, PlatformMethods.WindowLongFlags.GWL_WNDPROC, newWndProc); IntPtr NewWindowProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam) { if (msg == WindowsPlatformMessageIds.WM_SETTINGCHANGE || msg == WindowsPlatformMessageIds.WM_THEMECHANGE) { MauiWinUIApplication.Current.Application?.ThemeChanged(); } if (msg == WindowsPlatformMessageIds.WM_DPICHANGED) { var dpiX = (short)(long)wParam; var dpiY = (short)((long)wParam >> 16); var window = this.GetWindow(); if (window is not null) { window.DisplayDensityChanged(dpiX / DeviceDisplay.BaseLogicalDpi); } } MauiWinUIApplication.Current.Services?.InvokeLifecycleEvents <WindowsLifecycle.OnPlatformMessage>( m => m.Invoke(this, new WindowsPlatformMessageEventArgs(hWnd, msg, wParam, lParam))); return(PlatformMethods.CallWindowProc(oldWndProc, hWnd, msg, wParam, lParam)); } }
void SubClassingWin32() { MauiWinUIApplication.Current.Services?.InvokeLifecycleEvents <WindowsLifecycle.OnPlatformWindowSubclassed>( del => del(this, new WindowsPlatformWindowSubclassedEventArgs(WindowHandle))); newWndProc = new PlatformMethods.WindowProc(NewWindowProc); oldWndProc = PlatformMethods.SetWindowLongPtr(WindowHandle, PlatformMethods.WindowLongFlags.GWL_WNDPROC, newWndProc); IntPtr NewWindowProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam) { if (msg == WindowsPlatformMessageIds.WM_SETTINGCHANGE || msg == WindowsPlatformMessageIds.WM_THEMECHANGE) { MauiWinUIApplication.Current.Application?.ThemeChanged(); } MauiWinUIApplication.Current.Services?.InvokeLifecycleEvents <WindowsLifecycle.OnPlatformMessage>( m => m.Invoke(this, new WindowsPlatformMessageEventArgs(hWnd, msg, wParam, lParam))); return(PlatformMethods.CallWindowProc(oldWndProc, hWnd, msg, wParam, lParam)); } }
public static void MapFlowDirection(IWindowHandler handler, IWindow view) { var WindowHandle = handler.PlatformView.GetWindowHandle(); // Retrieve current extended style var extended_style = PlatformMethods.GetWindowLongPtr(WindowHandle, PlatformMethods.WindowLongFlags.GWL_EXSTYLE); long updated_style; if (view.FlowDirection == FlowDirection.RightToLeft) { updated_style = extended_style | (long)PlatformMethods.ExtendedWindowStyles.WS_EX_LAYOUTRTL; } else { updated_style = extended_style & ~((long)PlatformMethods.ExtendedWindowStyles.WS_EX_LAYOUTRTL); } if (updated_style != extended_style) { PlatformMethods.SetWindowLongPtr(WindowHandle, PlatformMethods.WindowLongFlags.GWL_EXSTYLE, updated_style); } }
private void _PDTUpdateButton_ItemClick(object sender, ItemClickEventArgs e) { PlatformMethods.UpdatePDTFiles(); }
/// <summary>Повне оновлення</summary> private void openFullUpdate_ItemClick(object sender, ItemClickEventArgs e) { PlatformMethods.UpdateSolution(); }
/// <summary>Онивлення БД без форми</summary> private void FastDBUpdateButton_ItemClick(object sender, ItemClickEventArgs e) { PlatformMethods.UpdateDB(false); }
/// <summary>Оновлення БД з формою</summary> private void UpdateDBStructureButton_ItemClick(object sender, ItemClickEventArgs e) { PlatformMethods.UpdateDB(true); }