Visual C++ 標準のツールバー (CToolBar クラス) は 16 色のビットマップ リソースのみをサポートします

現象

Visual C++ の MFC アプリケーションで標準のツールバー (CToolBar クラス) を使用する場合、Visual Studio 開発環境は常に 16 色 (4bit) のビットマップ リソースを作成します。

Visual Studio 開発環境ではこの色範囲を調整する手段を提供しておらず、CToolBar クラスは 16 色のリソースのみを安全な動作保証対象としてサポートします。

MFC アプリケーションのツールバーに、16 色より大きい 256 色 (8bit) 等のビットマップ リソースを使用することは MFC ライブラリの実装において想定されていません。そのため、外部エディタ等でツールバーのリソースを強制的に 256 色以上に変更してアプリケーションを構築した場合、該当アプリケーションではツールバーの動作時に予期しない問題が発生する可能性があります。
また、アプリケーション動作環境のドライバ等の構成によっては、システム全体への影響が生じる可能性もあります。

解決方法

CToolBar クラスが利用するビットマップ リソースは Visual Studio 開発環境以外での編集を行わず、必ず既定の 16 色の設定のままにする必要があります。

仮にこれを変更した場合には、手動で元の 16 色の設定に戻すか、Visual Studio において調整の必要がある旨のメッセージが表示された際に、ダイアログの指示に従って 16 色に戻します。

ただし、Visual Studio 2008 Service Pack 1 以降のバージョンであれば、CMFCToolBar クラスを使用して 16色以外のビットマップ リソースも利用できます。

状況

この動作は仕様です。

詳細

ツールバーのビットマップ リソースを手動で 256 色以上のリソースに変更した場合、Visual Studio 開発環境でのツールバー リソースの再読み込みのタイミングで、ツール バーのビットマップは 16 色に調整する必要がある旨の以下のようなダイアログが表示される場合があります。

「このツール バーのビットマップは 16 色に調整する必要があります。ビットマップの調整をしますか?」

このダイアログで「はい」を選択すると、Visual Studio はビットマップを 16 色に変更します。

プロパティ

文書番号:2685429 - 最終更新日: 2016/09/29 - リビジョン: 1

Microsoft Visual Studio .NET 2003 Professional Edition, Microsoft Visual Studio 2005 Professional Edition, Microsoft Visual Studio 2008 Professional Edition, Microsoft Visual Studio 2008 Professional Edition, Microsoft Visual Studio 2010 Professional

フィードバック