win32全屏覆盖任务栏无效

问题描述

win32全屏覆盖任务栏无效

void EnterFullScreen(WindowInfo* win, bool presentation)
{
HWND hwnd = FindWindow(NULL, L"DetailShow");
HWND hwnd1 = ::GetParent(win->hwndFrame);
if (!hwnd)
return;

if (!HasPermission(Perm_FullscreenAccess) || gPluginMode)
    return;

if ((presentation ? win->presentation : win->isFullScreen) || !IsWindowVisible(hwnd))
    return;

AssertCrash(presentation ? !win->isFullScreen : !win->presentation);
if (presentation) {
    AssertCrash(win->ctrl);
    if (!win->IsDocLoaded())
        return;

    if (IsZoomed(hwnd))
        win->windowStateBeforePresentation = WIN_STATE_MAXIMIZED;
    else
        win->windowStateBeforePresentation = WIN_STATE_NORMAL;
    win->presentation = PM_ENABLED;

    SetTimer(win->hwndCanvas, HIDE_CURSOR_TIMER_ID, HIDE_CURSOR_DELAY_IN_MS, nullptr);
}
else {
    win->isFullScreen = true;
}

// ToC and Favorites sidebars are hidden when entering presentation mode
// TODO: make showFavorites a per-window pref
bool showFavoritesTmp = gGlobalPrefs->showFavorites;
if (presentation && (win->tocVisible || gGlobalPrefs->showFavorites)) {
    SetSidebarVisibility(win, false, false);
}

long ws = GetWindowLong(hwnd, GWL_STYLE);
if (!presentation || !win->isFullScreen)
    win->nonFullScreenWindowStyle = ws;
// remove window styles that add to non-client area
ws &= ~(WS_CAPTION | WS_THICKFRAME);
ws |= WS_MAXIMIZE;

win->nonFullScreenFrameRect = WindowRect(hwnd);
RectI rect = GetFullscreenRect(hwnd);

SetMenu(hwnd, nullptr);
ShowWindow(win->hwndReBar, SW_HIDE);
ShowWindow(win->hwndTabBar, SW_HIDE);
ShowWindow(win->hwndCaption, SW_HIDE);
SetWindowLong(hwnd, GWL_STYLE, ws);
SetWindowPos(hwnd, nullptr, rect.x, rect.y, rect.dx, rect.dy, SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOZORDER);
ShowWindow(hwnd, SW_SHOWMAXIMIZED);
if (presentation)
    win->ctrl->SetPresentationMode(true);

// Make sure that no toolbar/sidebar keeps the focus
SetFocus(hwnd);
// restore gGlobalPrefs->showFavorites changed by SetSidebarVisibility()
gGlobalPrefs->showFavorites = showFavoritesTmp;

}

解决方案

MFC对话框窗口全屏 并覆盖任务栏
win32窗口全屏
win32全屏的方法

解决方案二:

用setwindowpos swp_topmost将你的窗口置顶看看

时间: 2024-08-01 09:33:07

win32全屏覆盖任务栏无效的相关文章

全屏的三栏div+css布局示例

全屏的三栏div+css布局示例 以下是代码:<html> <head> <title>Nice and Free CSS Template 7</title> <style type="text/css" media="screen"><!-- /*  body and font definitions */ html { padding:0px; margin:0px; } body { back

cocos2d win32全屏-cocos2dx3.5,如何在Win32自适应满屏显示呢?

问题描述 cocos2dx3.5,如何在Win32自适应满屏显示呢? 用的是cocos2d-x3.5的做一个win32的游戏,想要全屏显示,如何修改呢,不是 解决方案 glview = GLViewImpl::createWithFullScreen("123456");

android全屏去掉title栏的多种实现方法_Android

1.实现应用中的所有activity都全屏 在manifest中直接加入 复制代码 代码如下: android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 2.实现单个activity全屏 复制代码 代码如下: requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.TYPE_STATUS_BAR

android全屏去掉title栏的多种实现方法

1.实现应用中的所有activity都全屏 在manifest中直接加入 复制代码 代码如下: android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 2.实现单个activity全屏 复制代码 代码如下: requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.TYPE_STATUS_BAR

winform,wpf全屏 还显示任务栏的解决方法

原文:winform,wpf全屏 还显示任务栏的解决方法 以wpf为例: 全屏代码: this.Topmost = true; this.WindowStyle = System.Windows.WindowStyle.None; this.WindowState = System.Windows.WindowState.Maximized; this.Hide(); //先调用其隐藏方法 然后再显示出来,这样就会全屏,且任务栏不会出现.如果不加这句 可能会出现假全屏即任务栏还在下面. this

Word2013怎么快速全屏浏览

  Word2013怎么快速全屏浏览 1.用Word2013打开一篇文档,单击标题栏右侧的"功能区显示选项",选择"自动隐藏功能区"选项. Word2013 2.此时,文档窗口会自动全屏覆盖,阅读工具栏也被隐藏起来了.效果图如下: Word2013 3.如果我们想退出全屏浏览,可以单击右上角的"功能区显示选项",选择"显示选项卡和命令"选项. Word2013 提示:退出全屏后,文档窗口会自动进入最大化模式,如有需要,可手动调

Word2013如何快速实现全屏浏览和退出全屏

  1.用Word2013打开一篇文档,单击标题栏右侧的"功能区显示选项",选择"自动隐藏功能区"选项. 2.此时,文档窗口会自动全屏覆盖,阅读工具栏也被隐藏起来了.效果图如下: 3.如果我们想退出全屏浏览,可以单击右上角的"功能区显示选项",选择"显示选项卡和命令"选项. 提示:退出全屏后,文档窗口会自动进入最大化模式,如有需要,可手动调节其大小.

Word自动隐藏功能区实现全屏浏览文档的方法

  在看视屏时,默认情况下我们都会全屏观看,想必这一是很多人的习惯了,那么如果看一篇文章该如何全屏呢?其实Word2013中可以通过隐藏阅读工具栏和显示阅读工具栏来达到全屏和退出全屏的目的.下面有个不错的教程,感兴趣的朋友可以参考下. 简要概述 实现全屏与退出全屏主要是对功能区的显示与隐藏的操作.当文档窗口自动全屏时会覆盖阅读工具栏,退出全屏浏览后,功能区会自动显示出来.另外当文档窗口进入最大化模式后,可以根据自己的需要大小,进行手动调整. 操作步骤 用Word2013打开一篇文档,单击标题栏右

delphi程序全屏显示无标题栏覆盖整个屏幕

delphi 简单实现程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,具体代码如下,感兴趣的朋友可以参考下哈   delphi 程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,所以记下 复制代码 代码如下: procedure TMainFrm.FormCreate(Sender: TObject); begin with MainFrm do begin { Position form } Top := 0 ; Left := 0 ; { Go full s