如何在不破坏 wxWidgets 调整大小和移动的情况下制作自定义边框?

How to make a custom border without breaking resize and move in wxWidgets?

我正在使用 wxWidgets 作为 GUI 库用 C++ 编写应用程序,我想创建自定义 windows。我希望它们看起来像 Visual Studio 或 3ds Max。是否可以删除边框但保留调整大小和移动功能?我可以使用 wxBORDER_NONE 并捕获所有事件以删除和调整大小(我希望),但在我看来应该有更简单的方法来自定义 wxFrame 的外观。也许像包含所有需要的位图和设置的文件之类的东西?

具有我需要的这些功能的示例图像:

您将无法以可移植的方式执行此操作,因此 wxWidgets 不会为此提供任何 API。但是您只能以通常的方式为 Windows 执行此操作,即删除正常边框(wxBORDER_NONE 样式)并在覆盖的 MSWWindowProc() 中处理 WM_NCHITTEST 以假装特定部分您的 window 行为与标准边框相同。