Visual Studio 2010 で作成した ActiveX のストック プロパティ ページでカスタム カラーが設定できない

現象

Visual Studio 2010 にて、以下の技術情報の手順に沿い、ストック カラー プロパティページ (CColorPropPage) を使用した ActiveX を作成した場合、カスタム カラーが設定できません。システム カラーの設定は可能です。

MFC ActiveX コントロール : ストック プロパティ ページの使用

原因

Visual C++ 6.0 以前のバージョンの MFC では、ActiveX コントロールは、カラー プロパティのプロパティ ページを表示するために、上記技術情報のとおりクラス ID として CLSID_CColorPropPage を指定しました。CColorPropPage クラスを指すこの GUID は、現在も利用は可能ですが、実装自体は mfc42.dll に含まれており、これは Visual C++ 6.0 時点の内容を引き継いでおります。従って、最新の開発環境や OS にて適切に動作するような実装変更が行われていません。

回避策

ストック プロパティページの代わりに、別途、プロパティ ページを作成する必要があります。
Visual Studio 2010 で提供される最新のコントロールで利用できるクラスについては、以下の Visual Studio 2010 Feature Pack 2 付属のコントロールのサンプル (NewControls) をご参照ください。

  Visual C++ MFC Samples for Visual Studio 2010
  

関連情報

ストック プロパティの実装に際して、GUID の CLSID_CColorPropPage の代わりに、GUID の CLSID_StockColorPage (CStockColorPage クラス) を使用することも可能です。ただし、これらは msstkprp.dll によって実装されるため、この DLL をアプリケーションで再配布する必要があります。

なお、msstkprp.dll は Visual Studio 2010 には同梱されておらず、 Visual Basic 6.0 あるいは Visual Studio .NET 2003 に含まれております。msstkprp.dll は、アプリケーションと共に配布できる、サポート対象のランタイム ファイルです。

msstkprp.dll をご利用いただく際は、通常の他のランタイムモジュールと同様に、Visual Basic 6.0 または Visual Studio 2003 で開発したアプリケーションと共に配布する必要があります。そのため、ストックカラープロパティページを実装する対象アプリケーションが、Visual Basic 6.0 ないし Visual Studio .NET 2003 からの移行であり、該当ファイル msstkprp.dll が既に配布済みの環境を前提とする場合であれば、CStockColorPage が利用可能です。

msstkprp.dll の Windows Vista、Windows Server 2008、Windows 7、および Windows 8 に対するサポートについては、以下のサイトを参照してください。

  Windows Vista および Windows Server 2008 に対する Visual Basic 6.0 のサポートに関する声明
  

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

フィードバックをお送りいただきありがとうございます!

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×