wxWidgets中wxFrame创建后尺寸位置不符,Windows10下如何解决?
wxWidgets窗口尺寸与位置偏移问题(Windows10环境)
我正从MFC转用wxWidgets做技术验证,以下代码可在ucrt64环境编译,并在Windows10系统运行。预期主窗口尺寸为250×250px,位置为(100,100)px,但实际显示位置为(108,100),尺寸为234×242。该问题仅出现在Windows10系统,Windows7系统下一切正常,怀疑是新手操作失误,恳请指点。
代码示例
#include <wx/wxprec.h> #ifndef WX_PRECOMP #include <wx/wx.h> #endif #include "ProjectBase.h" class Application : public wxApp { public: virtual bool OnInit(); }; wxIMPLEMENT_APP(Application); bool Application::OnInit() { wxWindow *frame = new wxFrame(NULL, wxID_ANY, "Test", wxPoint(100, 100), wxSize(250, 250), wxDEFAULT_FRAME_STYLE | wxRESIZE_BORDER); frame->Show(true); return true; }
窗口显示截图

已尝试的操作
- 调用frame句柄的MoveWindow()方法无效
- 调用frame->SetSize()方法无效
- 使用第三方工具Sizer4可将窗口设置为预期尺寸
- Windows10显示缩放比例已设为100%
- 在资源文件中定义
wxUSE_DPI_AWARE_MANIFEST 2无效(该机制在缩放显示器上有效,但位置与尺寸偏差仍存在)
内容的提问来源于stack exchange,提问作者Steffen
相关产品推荐
相关产品推荐

