如何在 windows c++ 中创建带标题栏的无边框 window
How to create a borderless window with titlebar in windows c++
我正在尝试创建一个 Direct3D 应用程序,它在 windowed 模式下运行,带有标题栏和 minimize/quit 按钮。但是,我真的很想能够取消 window.
周围的边界
我想这样做是因为当应用程序水平填充主显示器(有空间垂直移动应用程序)时,它在双显示器上看起来很俗气,但它的 window 边框溢出到辅助显示器上屏幕。我已经尝试了 setwindowlong
与 GWL_STYLE
和 GWL_EXSTYLE
的一堆组合,但似乎无法取得进展,除非我禁用标题栏。
我见过很多无边框的应用程序,但它们似乎模仿了标题栏,而不是使用 Microsoft 提供的内置应用程序。
感谢任何建议。
您不能删除边框并保留标题栏 AFAIK。
您可以使用 WM_NCHITTEST
重新实现标题栏,但您仍然需要自己绘制它,如果您希望 D3D 应用程序看起来最好,这不是一个坏主意。
Visual Studio,我上次检查时,它的边框透明分层 windows 位于主要边框后面。他们就是你看到的影子。
我正在尝试创建一个 Direct3D 应用程序,它在 windowed 模式下运行,带有标题栏和 minimize/quit 按钮。但是,我真的很想能够取消 window.
周围的边界我想这样做是因为当应用程序水平填充主显示器(有空间垂直移动应用程序)时,它在双显示器上看起来很俗气,但它的 window 边框溢出到辅助显示器上屏幕。我已经尝试了 setwindowlong
与 GWL_STYLE
和 GWL_EXSTYLE
的一堆组合,但似乎无法取得进展,除非我禁用标题栏。
我见过很多无边框的应用程序,但它们似乎模仿了标题栏,而不是使用 Microsoft 提供的内置应用程序。
感谢任何建议。
您不能删除边框并保留标题栏 AFAIK。
您可以使用 WM_NCHITTEST
重新实现标题栏,但您仍然需要自己绘制它,如果您希望 D3D 应用程序看起来最好,这不是一个坏主意。
Visual Studio,我上次检查时,它的边框透明分层 windows 位于主要边框后面。他们就是你看到的影子。