我已经尝试过运行Windows Desktop应用程序,但是我无法隐藏标题栏以在全屏模式窗口中运行应用程序
答案 0 :(得分:1)
遇到了同样的问题,我在这里分享我的解决方案。
我不是Win32开发人员,但我设法通过这种方式制作了基本的全屏显示。
此代码适用于我的Flutter 1.21.0-10.0.pre.114版本,希望对您也有用。
我的解决方案受此启发:https://stackoverflow.com/a/2416613/14093885
您必须编辑./windows/runner/main.cpp
在这些语句之间的第30行附近插入以下代码:
window.SetQuitOnClose(true);
//Insert Code Here
run_loop.Run();
要插入的代码:
WND hwnd = window.GetHandle();
auto windowHDC = GetDC(hwnd);
int fullscreenWidth = GetDeviceCaps(windowHDC, DESKTOPHORZRES);
int fullscreenHeight = GetDeviceCaps(windowHDC, DESKTOPVERTRES);
int colourBits = GetDeviceCaps(windowHDC, BITSPIXEL);
int refreshRate = GetDeviceCaps(windowHDC, VREFRESH);
DEVMODE fullscreenSettings;
bool isChangeSuccessful;
EnumDisplaySettings(NULL, 0, &fullscreenSettings);
fullscreenSettings.dmPelsWidth = fullscreenWidth;
fullscreenSettings.dmPelsHeight = fullscreenHeight;
fullscreenSettings.dmBitsPerPel = colourBits;
fullscreenSettings.dmDisplayFrequency = refreshRate;
fullscreenSettings.dmFields = DM_PELSWIDTH |
DM_PELSHEIGHT |
DM_BITSPERPEL |
DM_DISPLAYFREQUENCY;
SetWindowLongPtr(hwnd, GWL_EXSTYLE, WS_EX_APPWINDOW | WS_EX_TOPMOST);
SetWindowLongPtr(hwnd, GWL_STYLE, WS_POPUP | WS_VISIBLE);
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, fullscreenWidth, fullscreenHeight, SWP_SHOWWINDOW);
isChangeSuccessful = ChangeDisplaySettings(&fullscreenSettings, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL;
ShowWindow(hwnd, SW_MAXIMIZE);
答案 1 :(得分:0)
尚无对全屏模式的内置支持,因此尚无可调用的Dart API进入全屏模式。如果您熟悉Win32编程,则可以直接更改Runner代码以使窗口全屏显示,也可以编写一个插件来完成该操作。
答案 2 :(得分:0)
您需要实现插件window_size:https://github.com/google/flutter-desktop-embedding/tree/master/plugins/window_size
./components
}
答案 3 :(得分:0)
我认为它现在必须更改 cpp 文件。
win32_window.cpp 将“WS_OVERLAPPEDWINDOW”替换为“WS_POPUP | WS_MAXIMIZE”
/* WS_POPUP : 没有标题栏 WS_MAXIMIZE : 全屏 */
答案 4 :(得分:0)
这是获得更多帮助的链接window Size 我已经这样做了 我从这里得到窗口大小: https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles
在窗口大小的颤振窗口应用程序中: 去 windows/runner/win32_window.cpp
在 win32_window.cpp 文件中找到下面给出的代码,并根据需要进行更改。
HWND window = CreateWindow(
window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_MAXIMIZE | WS_VISIBLE,
Scale(origin.x, scale_factor), Scale(origin.y, scale_factor),
Scale(size.width, scale_factor), Scale(size.height, scale_factor),
nullptr, nullptr, GetModuleHandle(nullptr), this);