2017-02-23 53 views
-1

我需要使用Visual C++自定義MenuStrip。我已經嘗試創建一個ColorTable,但它一直告訴我,我不能重寫一個類的非虛擬方法,在其他嘗試中,它告訴我我無法重寫屬性。在Visual C++中自定義MenuStrip

我目前無法發佈我的一些嘗試,因爲我在辦公室使用Windows系統時擁有Mac。

+0

請了downvoting我要補充的意見,告訴我爲什麼我被downvoted。 –

+0

不是我的投票,但這個問題至少有兩個問題:沒有代碼,並且看起來你也在使用C++基礎。 – MSalters

+0

如果我正在努力使用C++基礎知識,我將不會創建ColorTable。我知道我得到了什麼錯誤,我不明白爲什麼會出現錯誤。一旦我在辦公室,我會添加一些代碼。 –

回答

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