2008-08-12 3 views
5

MicrosoftがVisual Studio 2008用にリリースした「MFCフィーチャーパック」を使用するために、従来のC++コードを更新しています。新しいクラスはCFrameWndExからアプリケーションを派生させ、アプリケーションにもっと現代的な外観を与えるためにOffice 2007スタイルを適用しています。これにより、ウィンドウのタイトル、ステータスバーなどのグラデーション、およびリボンツールバーの使用が可能になりました。Office 2007スタイルのMFCフィーチャーパックを使用する際に使用されている色を確認してください

ただし、私たちのアプリケーションにはオーナー描画コントロールがいくつかありますが、フィーチャーパックで使用されているカラースキームと一致するようにこれを更新したいと思います。理想的には、現在使用されている明るい色調のツールバーの色を知りたいと思います。

私はドキュメントとウェブの周りに狩りを持ち、まだ何も見つかりませんでした。誰もこの情報を見つける方法を知っていますか?

[編集]

特に、我々は、色が実行時に使用されているかを知る必要があります。新しい静的関数CMFCVisualManager :: SetDefaultManagerを使用して、実行時にアプリケーションの外観を変更することができます。 link to msdn

答えて

2

あなたが

Cのようなものでは見つけることができますMFCソースコードで見たことが:私はあなたを推測するの\ Program Files \ MicrosoftのVisual Studio 9.0 \ VC \ atlmfc \ SRC \ MFC

0

お気に入りの画像エディタを使用して、スクリーングラブから色を選ぶことができます。

0

「お気に入りの画像エディタを使用して、スクリーングラブから色を選ぶことができました。」

これは本質的に私が今やっていることであり、色を引き出す定数のリストを定義しました。しかし、非常に優雅に見えません!

0

CMFCVisualManagerは、色情報を取得するためのいくつかの方法を提供しています。

CMFCVisualManager::GetSmartDockingBaseGuideColors() 
CMFCVisualManager::GetToolbarHighlightColor() 

CMFCVisualManagerのMSDNドキュメントをご覧ください。

0

@GateKiller、OPはOffice 2007アドインを開発していないため、UIガイドラインは本当に役立ちません。これは、Visual C++ 2008 Feature Packを使用してMFCアプリケーションがOffice 2007のルックアンドフィールをとることができるMFCアプリケーションです。

1

CMFCVisualManagerは、色情報を取得するためのいくつかの方法を提供しています。

CMFCVisualManager :: GetSmartDockingBaseGuideColors() CMFCVisualManager :: GetToolbarHighlightColor()

はCMFCVisualManagerのためのMSDNドキュメントを見てみましょう。

良い提案が、現在、私はスタイルCMFCVisualManagerOffice2007で自分のアプリケーションを実行しているとき、残念ながら彼らはただ、灰色の様々な色合いを返す:: Office2007_LunaBlue

がうるさくMSDNのヘルプは、「工事中」「そうdoesnのです彼らが何をやろうとしているかを教えてください!

0

良い提案が、現在、私はスタイルCMFCVisualManagerOffice2007で自分のアプリケーションを実行しているとき、残念ながら彼らはただ、灰色の様々な色合いを返す:: Office2007_LunaBlue

CMFCVisualManagerOffice2007 :: GetTabFrameColors - clrFace出力paramはありますグレー?

おそらく、それぞれのテーマの基本的な色調の上にあるすべてのマスクですか? CMFCVisualManagerOffice2007 :: GetStyle()でどのカラースキームが有効であるかを判断できるとすれば、おそらく色相が何であるか把握し、GetxxxColor()メソッドでマスキングを行うことができます。

1

afxGlobalDataには、MFC Feature Packで使用されている現在の色、ブラシ、フォントに関する有用な情報が含まれています。特に、自分のコントロールバーの背景をペイントするときはafxGlobalData.m_clrBarFaceを使用します。

(私は自分の仕事用PCの前にいないので、上記の構文には当てはまりません)

関連する問題