2017-02-23 5 views
-1

Visual C++でMenuStripをカスタマイズする必要があります。私はColorTableを作成しようとしましたが、クラスの非仮想メソッドをオーバーライドできないことを私に伝えています。他の試みでは、プロパティをオーバーライドできないことがわかります。Visual C++でMenuStripをカスタマイズする

私はオフィスでWindowsシステムを使用している間、私はMacを所有しているため、現在いくつかの試みを投稿できません。

+0

してくださいもう私は私はdownvotedされていますなぜ私に伝えるためにコメントを追加する必要がありdownvoting。 –

+0

私の投票ではありませんが、この問題には少なくとも2つの問題があります。コードなしで、C++の基本にも苦しんでいるようです。 – MSalters

+0

私がC++の基本に苦しんでいるなら、私はColorTableを作成しません。私は何のエラーが発生しているのか知っていますが、なぜエラーが出るのか分かりません。私はオフィスにいればコードをいくつか追加します。 –

答えて

0

私は最終的に自分自身を理解しました。

Fistでは、カスタムの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()); 
関連する問題