Visual Studio 2017(C++)中如何实现Windows窗体全屏并居中?
实现Visual C++ WinForms窗体全屏并居中的方案
嘿,作为Visual Studio 2017下的VC++新手,能琢磨窗体全屏和居中的需求已经很赞啦!我直接给你把逻辑补到你的MyForm_Load事件里,两种常用方式任你选:
方式一:原生最大化(最简单的全屏实现)
这种方式调用系统原生的最大化功能,窗体直接占满整个屏幕,位置自动适配,代码最简洁:
private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) { // 把窗体设置为最大化状态,一键实现全屏 this->WindowState = System::Windows::Forms::FormWindowState::Maximized; }
方式二:手动控制尺寸+居中
如果你需要更精细的控制(比如想让窗体大小刚好匹配屏幕工作区,排除任务栏),可以手动获取屏幕尺寸后设置,再调用居中方法:
private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) { // 获取当前主屏幕的工作区范围(不含任务栏,要包含任务栏就用Screen::PrimaryScreen->Bounds) System::Drawing::Rectangle screenWorkArea = System::Windows::Forms::Screen::PrimaryScreen->WorkingArea; // 设置窗体大小为屏幕工作区的尺寸 this->Size = screenWorkArea.Size; // 让窗体在屏幕中居中显示 this->CenterToScreen(); }
小提醒:
- 用
Maximized的话,系统会自动处理屏幕适配,包括任务栏的显示逻辑(比如任务栏自动隐藏时会完全覆盖) CenterToScreen()适合非最大化的场景,要是已经最大化了,这个方法其实没必要调用哦
内容的提问来源于stack exchange,提问作者user8653311
相关产品推荐
相关产品推荐

