小编Naj*_*oda的帖子

Win32:为什么全屏模式有问题?

目前,我正在尝试制作一个简单的 Win32 应用程序,它可以在全屏和窗口模式之间来回切换。我正在使用Chromium 方法作为参考。我创建了一个类来处理窗口,使事情变得更简单。

我希望通过在按下 F4 键时切换全屏来实现这一点。不幸的是,样式似乎应用正确,但窗口没有调整大小或移动到正确的区域。它还会在返回到原始位置之前捕捉到屏幕的左上角片刻。出于某种原因,当我切换全屏时,窗口的输入会传递到它下面的那个。然后我必须去任务管理器杀死程序,因为我无法关闭窗口或应用程序。

我已经尝试在创建时将 HWND 的样式存储在一个类变量中(它以窗口模式开始)并使用该值为全屏窗口创建必要的样式并恢复窗口模式窗口。我还尝试GetWindowLongPtrToggleFullscreen调用函数时立即获取窗口样式。这两个都不起作用。

这是我的代码:

窗口处理程序

#include <Windows.h> // Win32 API

#ifndef WINDOWHANDLER
#define WINDOWHANDLER

class WindowHandler // WindowHandler
{
     public:
          WindowHandler(); // Constructor

          void Destroy() { DestroyWindow(hwnd); } // Destroy the handler

          void ToggleFullscreen(); // Toggle fullscreen

     protected:
          static LRESULT CALLBACK WindowProc // Window procedure
          (
               HWND hwnd,
               UINT message,
               WPARAM wParam,
               LPARAM lParam
          );

          HWND hwnd; // The window

          // Everything involved in fullscreen
          bool fullscreen …
Run Code Online (Sandbox Code Playgroud)

c++ winapi

5
推荐指数
1
解决办法
569
查看次数

标签 统计

c++ ×1

winapi ×1