【发布时间】:2018-06-29 17:26:01
【问题描述】:
我是 Visual Studio 和 C++ 的新手,我创建了一个新的 CLR 空项目并开始添加一些控件。我注意到工具条右边缘有这个奇怪的人工制品,并想将其移除。
这个问题Why am I getting a vertical line on toolstrip? 在 c# 中提供了一个解决方案,但我在尝试使它在 Visual c++ 中工作时遇到了麻烦。
首先我创建了一个名为CustomerRenderer.cpp 的新 .cpp 文件,代码如下所示:
using namespace System::Windows::Forms;
private ref class CustomRenderer : ToolStripRenderer
{
protected:
virtual void OnRenderToolStripBorder(ToolStripRenderEventArgs^ e) override
{
ToolStripRenderer::OnRenderToolStripBorder(e);
}
};
然后在我的表单加载中我放了这个:
private: System::Void MainForm_Load(System::Object^ sender, System::EventArgs^ e) {
this->toolStrip1->Renderer = gcnew CustomRenderer();
}
这只是使工具条完全消失,而不是修复边缘伪影。我喜欢渐变工具条的风格,所以宁愿不改成系统渲染器。
如何在 Visual c++ 项目中覆盖工具条渲染器并移除边缘边框伪影?
谢谢
【问题讨论】:
标签: winforms visual-studio c++-cli toolstrip