問題タブ [mfc-feature-pack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
colors - Office2007スタイルでMFC機能パックを使用するときに使用されている色を確認します
MicrosoftがVisualStudio2008用にリリースした「MFC機能パック」を使用するようにレガシーC++コードの一部を更新しています。新しいクラスを使用してCFrameWndExからアプリケーションを派生させ、Office2007スタイルを適用してよりモダンな外観のアプリケーション。これにより、グラデーションで塗りつぶされたウィンドウタイトル、ステータスバーなど、およびリボンツールバーの使用が可能になります。
ただし、アプリケーションには所有者が描画したコントロールがいくつか含まれているため、機能パックで使用される配色に一致するようにこれらを更新したいと思います。理想的には、現在使用されている明るい色と影付きのツールバーの色を知りたいです。
私はドキュメンテーションとウェブを探し回っていましたが、まだ何も見つかりませんでした。誰かがこの情報を見つける方法を知っていますか?
[編集]
特に、実行時に使用されている色を確認する必要があります。新しい静的関数CMFCVisualManager::SetDefaultManagerを使用して、実行時にアプリケーションの外観を変更できます。
次のmsdnページは、使用可能なスタイルの種類、特にOffice2007の外観を示しています 。msdnへのリンク
mfc - MFC Feature Pack クラスのメニューのアイコン
新しい MFC 機能 (Feature Pack) でメニューが表示される場所は 3 つあります。
- メニュー バー (CMFCMenuBar)
- ポップアップ メニュー (CMFCPopupMenu)
- CMFCButton の「ドロップダウン メニュー」バージョン
それらすべてのメニューにアイコン(ハイカラーで透明度のあるもの)を入れたいです。メニューバー項目の前にアイコンをカスタム描画するために使用できる CFrameWndEx::OnDrawMenuImage() を見つけました。2008 年にアイコン描画を実装する必要があるため、あまり便利ではありませんが、機能します。他の人については、まだ解決策を見つけていません。メニューのアイコンを自動的に設定する方法はありますか?
mfc - ダイアログ ベースのアプリケーションで CMFCVisualManager を使用できますか?
ダイアログ ベースのアプリケーションで CMFCVisualManager を使用して、アプリケーションの外観を変更できますか? もしそうなら、それはどのように行われますか?
アイデアは、MSVC 2008 でリリースされた MFC Feature Pack を使用して、プッシュ ボタンなどのコントロールの形状、色などを変更することです。
mfc - CListView で CMFCListCtrl を使用する方法は?
新しいCMFCListCtrl機能をCListViewクラス (そしてもちろん、その中の新しい CMFCHeaderCtrl) で使用したいと考えています。残念ながら、 SysListView32 ウィンドウは既に CListView オブジェクトに関連付けられているため、Attach()またはSubclassWindow( )を使用することはできません。
CListView のOnCmdMsg()をオーバーライドし、すべてのメッセージを CMFCListCtrl の独自のインスタンスにルーティングする必要がありますか? (それもうまくいきますか?)または、より簡単でクリーンなソリューションはありますか?
c++ - レジストリ アクセスを MFC Feature Pack からの db 呼び出しに変換する
古い VS2003 MFC プロジェクトを変換して、MFC Feature Pack と VS2008 によって提供される魅力的な新機能を使用することに着手するかもしれません。新しい UI コントロールのいくつかは、情報を自動的にレジストリに保存するという 1 つの点を除いて、非常に優れています。レジストリに問題はありませんが、ユーザーがプログラムを使用する複数の環境では、ユーザー データをデータベースに保存する方がはるかに簡単です。
したがって、データベースを指すようにオーバーロードできる主要な「レジストリへのアクセス」機能が 1 つあることを願っています。しかし、簡単な調査では何も判明しませんでした。他の誰かが同様のことをして成功しましたか?
c++ - CMainFrameではなくCViewでドッキングペインを作成する
VS2008(およびFeature Pack)のAppWizardを使用して「VisualStudio」スタイルのMDIアプリケーションを作成する場合、CMainFrame
クラスはメソッドを取得しCreateDockingWindows()
ます。
すべてのペインを常に表示するのではなく、アクティブなドキュメントのタイプに応じて表示する必要があるため、これらのウィンドウをビューのメンバーに作成し、作成をに移動しましたOnInitialUpdate()
。CMainFrame
メインフレームを親ウィンドウとして設定するなどして行ったのと同じ方法で、これらのペインを作成します。
ドッキングウィンドウの位置はレジストリに自動的に保存されますが、フレームの初期化時にドッキングウィンドウがまだ存在しないため、復元されません。
ビューを使用してドッキングウィンドウを作成することをお勧めしますか、それともさらに問題が発生する可能性がありますか?私が望むことを達成するためのより良い方法はありますか?
前もって感謝します!
c++ - ステータス バーに CMFCRibbonButton のツールヒントを表示するにはどうすればよいですか?
CMFCRibbonStatusBar
メインフレームに があり、これに を追加しCMFCRibbonButtonsGroup
ますCMFCRibbonButton
。このボタンは、メニュー エントリと同じ ID を持ちます。
ボタンの作成は次のように行われます。
このボタンをステータス インジケーターとして使用したいと考えています。
ツールチップを表示したいのは次の2つのケースです。
- ステータスが変化したときと
- ユーザーがボタンの上にマウスを移動したとき。
そもそもどうやって始めたらいいのかわからない。ToolTipDemo
とサンプル プロジェクトを見てきましたが、ツールバー項目またはダイアログ ボタンのツールチップを表示するだけなので (の代わりに -derived ) DlgToolTips
、その方法がわかりませんでした。CWnd
CMFCRibbonButton
サンプル プロジェクトに精通している場合: いくつかの方法があるように思われるため、このスクリーンショットに示されているようにToolTipDemo
、ツールヒントを "拡張ビジュアル マネージャー ベース" のツール ヒントのように表示することをお勧めします。
ありがとう!
c++ - CTreeCtrlでカスタムツールチップを表示するにはどうすればよいですか?
から派生したクラスがありCTreeCtrl
ます。ここでは、デフォルトのオブジェクトをカスタムのオブジェクトOnCreate()
に置き換えます。CToolTipCtrl
私のメッセージハンドラは次のようになります。
しかし、私はTTN_NEEDTEXT
メッセージを受け取りません。Spy ++を見てみましたが、このメッセージが送信されないようです。
ここで何が問題になる可能性がありますか?
アップデート
これが適切かどうかはわかりません。CTreeCtrl
の親ウィンドウのタイプはCDockablePane
です。これが機能するために必要な追加の作業がありますか?
c++ - CMFCToolTipCtrl または CTooltipManager の例?
これらの新しい VS2008 MFC クラスを使ってみた人はいますか? どこにも例が見つからないようです。VS2008 のサンプル (1) でさえ、これらのクラスについて言及していません。(CToolTip を使用します。)
(1) 更新: 私の間違いです。SP1 以外のサンプルをダウンロードしました。SP1 サンプルには、回答で言及されている DlgToolTips および ToolTipDemo プロジェクトを含む、2008 Feature Pack 専用のサンプルがあることがわかります。残念ながら、doc/view または CTooltipManager には対応していません。
具体的には、親が CSplitterWnd である 2 つのサイド バイ サイド ビューがある標準の MFC ビュー/ドキュメント アプリケーションにツールヒントを表示しようとしています。これは SP1 より前に機能していたので、新しい機能パックのツールチップ クラスを試す良い機会だと思いました。
PreTranslateMessage() をオーバーライドして手動で RelayEvent() を呼び出さずにこれらを機能させる方法はありますか? (MFC で、ツールチップのように設計が不十分なものは見たことがないと思います。)
CTooltipManager::CreateToolTip() を呼び出してから、作成されたヒントで AddTool() を呼び出すだけでは簡単ではないようです。
c++ - CDockablePane 内に MFC CFormView を配置するにはどうすればよいですか?
VS 2008 MFC Feature Pack で導入された CDockablePane 内に MFC CFormView を配置するにはどうすればよいですか?