在Visual C+中自定义菜单提示+; 我需要用VisualC++来定制一个MeNeSuIP。我曾尝试创建一个ColorTable,但它一直告诉我不能重写类的非虚拟方法,在其他尝试中,它告诉我不能重写属性

在Visual C+中自定义菜单提示+; 我需要用VisualC++来定制一个MeNeSuIP。我曾尝试创建一个ColorTable,但它一直告诉我不能重写类的非虚拟方法,在其他尝试中,它告诉我不能重写属性,c++,visual-c++,customization,menustrip,C++,Visual C++,Customization,Menustrip,我目前无法发布我的一些尝试,因为我在办公室使用Windows系统时拥有Mac电脑。我终于自己找到了答案 首先,创建一个自定义颜色表。例如: public ref class MyCustomColorTable: public ProfessionalColorTable { public: property Color MenuBorder { public: virtual Color get() override { return Colo

我目前无法发布我的一些尝试,因为我在办公室使用Windows系统时拥有Mac电脑。

我终于自己找到了答案

首先,创建一个自定义颜色表。例如:

public ref class MyCustomColorTable: public  ProfessionalColorTable
{
public:
    property Color MenuBorder {
        public: virtual Color get() override {
            return Color::FromArgb(180, 180, 185);
        };
    };
    property Color MenuItemBorder {
        public: virtual Color get() override {
            return Color::FromArgb(0, 0, 0, 0);
        };
    };
    property Color ImageMarginGradientBegin {
        public: virtual Color get() override {
            return Color::FromArgb(0, 0, 0, 0);
        };
    };
    property Color ImageMarginGradientMiddle {
        public: virtual Color get() override {
            return Color::FromArgb(0, 0, 0, 0);
        };
    };
    property Color ImageMarginGradientEnd {
        public: virtual Color get() override {
            return Color::FromArgb(0, 0, 0, 0);
        };
    };
    property Color ToolStripDropDownBackground {
        public: virtual Color get() override {
            return Color::FromArgb(248, 248, 248);
        };
    };
};
其次,在表单onLoad事件中,执行以下操作:

this->menuStrip->Renderer = gcnew ToolStripProfessionalRenderer(gcnew MyCustomColorTable());

请再投下一个评论,我应该加一个评论告诉我为什么我被否决了。不是我的投票,但是这个问题至少有两个问题:没有代码,而且看来你也在与C++基础知识斗争。如果我在C++基础上挣扎,我就不会创建一个彩色表。我知道我犯了什么错误,但我不知道为什么会犯这个错误。我在办公室后会添加一些代码。与其告诉我们你不能发布代码,为什么不推迟发布问题直到你可以发布?就目前而言,这个问题并不在主题上,因为它不包含代码或问题的详细描述。