hzg392622955 2016-05-06 07:54 采纳率: 0%
浏览 1770

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;

}

  • 写回答

1条回答

  • threenewbee 2016-05-06 15:44
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧