在Visual C ++中自定义MenuStrip

时间:2017-02-23 19:14:15

标签: c++ visual-c++ customization menustrip

我需要使用Visual C ++自定义MenuStrip。我尝试过创建一个ColorTable,但它一直在告诉我,我不能覆盖类的非虚方法,在其他尝试中它告诉我我不能覆盖属性。

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

1 个答案:

答案 0 :(得分:0)

我终于弄明白了。

拳头,创建自定义ColorTable。例如:

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());