問題タブ [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.
c++ - MFCでCFrameWndをCFrameWndExに変更すると、未処理の例外が発生します-アイデアはありますか?
まだこのMFCヒバリに慣れていて、私はこの特定の問題でレンガの壁にぶつかりました。MFC Feature Packで利用可能なより洗練されたコントロールのいくつかを使用するために、いくつかのレガシーコードを更新しています。
古いMFCアプリを更新するためにオンラインで提供された例に従って、基本アプリケーションクラスをCWinAppExに変更すると正常に機能しますが、CFrameWndをCFrameWndExに変更すると、mfc90d.dll!AFXGetRegPathのどこかからデバッグアサート失敗エラーメッセージが表示されます。このメッセージを無視すると、多数の0xC0000005:アクセス違反エラーが発生します。
これを修正する方法についての提案をいただければ幸いです。
乾杯。
visual-studio-2008 - CMFCRibbonEdit でコンテンツを自動的に大文字に変換するにはどうすればよいですか?
Visual Studio 2008 で MFC 機能パックを使用しています。リボンに編集ボックス (CMFCRibbonEdit) があり、大文字のみを含めたいと考えています。ES_UPPERCASE を「Create」メソッドに渡すことができることはわかっていますが、「Create」はコードによって明示的にではなく、リボン自体から呼び出されます。
編集ボックスをリボンに追加するには、次のように呼び出します。
MSDN で読んだ内容に基づいて、CMFCRibbonEdit の "CreateEdit" 関数をオーバーロードできることがわかりました。私はそれを試しましたが、うまくいきませんでした。
また、リボンとそのコントロールを初期化した後、この呼び出しを試みました。これもうまくいきませんでした。
どうすればこれを達成できるか知っている人はいますか?
visual-c++ - RibbonStatusBarPane のテキストの色を変更するには?
私のアプリケーションは MFC リボン (VS2008 + Feature pack9) を使用しています。RibbonStatus バー ペインのテキストの色を変更できません。仮想 int DrawPaneText(CDC* pDC, const CString& strText, CRect rectText, UINT uiDTFlags) 関数をオーバーライドしましたが、うまくいきません。
非リボン ステータス バーには、ペインのテキストの色を変更するための関数 void SetPaneTextColor(int nIndex, COLORREF clrText = (COLORREF)-1 , BOOL bUpdate) があります。
MFCRibbonStatusBarPane でこれを行う方法は?
c++ - CMainFrameでAltキーを押したを破棄します
私は次のコードを持っています:
問題は、を押す<ALT>
とメニュー(IDR_APP_MAINFRAME)がポップアップすることです。メニューを常に非表示にして、プレスに応答しないようにするにはどうすればよいですか?
これはMFCのアクセラレータ制御によるものだと聞いていましたが、VS2008を使用しているプロジェクトソリューションで制御を確認できませんでした。
visual-studio-2010 - Visual Studio 2010 - リボン UI を使用した C++ MFC アプリケーション - ビットマップの透過性
Visual C++ 2010 で、MFC ウィザードによって生成された小さなアプリケーションをいじっています。独自のビットマップをリソースに配置して、リボン UI アプリケーション ボタン (別名) に表示される 3 つのキューブ MFC ビットマップを置き換えることにしました。 「大理石」。
オリジナルは透明色として黒 (0,0,0) を使用しているように見えましたが、Visual Studio 2010 の MFC リボン (mfc-feature-pack など) がビットマップの透明度を決定するために何をするかを判断できません。リボンのメイン アイコン。
リボン (IDR_RIBBON) のプロパティは Image=IDB_MAIN を示しており、IDB_MAIN は BMP 形式の 32x32 ビットマップであり、main.bmp というディスク ファイルからロードされます。
このプロジェクトのビットマップ リソースのいくつかは、私が期待するようなものを持っています: 透明になるマゼンタ色ですが、MFC メイン ビットマップはこの配色またはパレットを使用しませんでした。
実際の結果の例を次に示します。これは、結果が私が望んでいたものではないことを示していることを願っています。
ちなみに、アプリケーション ボタンで ICON リソースを使用することはできないようです。
c++ - CMDIFrameWndEx の CMFCMenuBar のメニューを操作することはできますか?
私のメイン フレームには、現在のドキュメント タイプのメニューを含む CMFCMenuBar メンバーがあります。サブメニューを動的に追加/削除したいと思います。たとえば、ユーザーがマップ ペインを表示することを選択した場合、「ファイル」メニューの横にマップ サブメニューを追加したいと考えています。
逆に、マップ ペインが閉じられた場合は、マップ メニュー項目も削除したいと考えています。
機能するが、私が気に入らないことの 1 つは、ON_UPDATE_COMMAND_UI
ハンドラーのメニュー項目を単に無効にすることです。
Frame にはメソッドが呼び出されていますが、そのメソッドは aGetMenuBar()
を返すconst CMFCMenuBar *
ため、外部から変更することはできません。ゲッターを追加したので、メニューバーへの非 const 参照を取得しましたが、それも機能しませんでした:
上記のコードはvoid CMyMenuBar::AddSubMenu ()
、DynamicMenu
サンプルの を改変したものです。ただし、その特定のコードが実行されるかどうか、またはいつ実行されるかを確認できなかったため、このサンプルは壊れていると感じています。サンプルでは、メニュー バーがリセットされているとき、または状態がまだレジストリに保存されていないときにのみ、コードが実行されます。
これは不可能ですか、それとも何か間違っていますか?
サブメニューの追加/削除に代わる良い方法はありますか?
windows - MFC: CDockablePane 派生ウィンドウがスライドアウトまたは表示によって開かれたことを検出するイベントはありますか?
ウィンドウが実際に表示されるまで、CDockablePane 派生ウィンドウの初期化を遅らせたい。ウィンドウが単純にドッキングされている場合、WM_SHOWWINDOW は非常に効果的ですが、ウィンドウが AutoHideMode の場合、WM_SHOWWINDOW は予測できず、スライド アウトが終了したことを示すイベントが表示されません。
何かアドバイス?
visual-c++ - C++MFC機能パック->CDialogに複数のCDockablePanesを作成する
CDialogに領域を作成して、CDockablePanesを配置できるようにします。これらは、固定のダイアログコンテンツに完全にドッキングできます。
Codejock Dialog Panes Sampleはまさに私が望むものですが、MFC機能パッククラスで実現されています:http://codejock.com/downloads/samples/dockingpane.asp
現時点では、CDialogに埋め込まれているCFrameWndExから継承されたクラスを取得しました。また、動作するCDockablePaneも含まれています。ドッキングを解除して移動できますが、ドッキングしたいときにプログラムがクラッシュします。
これは、ドッキング可能なペインクラスが、実際のペインの移動先をプレビューするためのダミーペインを生成しようとするためです。NULLを返すGetTopLevelFrame()を呼び出します。これにより、afxpane.cpp @CreateEx()でクラッシュが発生します。
誰かが私のために何か助けやアイデアを持っていますか?:(
挨拶、
編集:
わかりました、いくつかのコード:
CFrameWndExから継承された小さなクラスを作成しました(コンストラクターが保護されているため):
次に、このクラスをCDialogに埋め込み、そのサイズをダイアログサイズに変更します。
CMyFrameクラスのOnCreate()で、CDockablePaneを設定してドッキングします。
mfc - Office 2010 スタイルの MFC 機能パック
vs2008 と MFC Feature pack 2008 を使用して mFC でアプリを開発しました。そのルック アンド フィールは 2007 年のオフィス スタイルに似ています。Office 2010 のようなルック アンド フィールのアプリが必要です。その方法を教えてください。
visual-c++ - C ++、MFC機能パック、Mdiの子の可視性
vs2008にMDIMFCFEATUREPACKアプリがあります。
ユーザーが複数のタブグループを作成した場合でも、表示されている子ウィンドウと、最後にアクティブ化されたMDIの子を特定する必要があります。私のメインフレームCMDIFrameWndEx
クラスでは、メソッドが
これにより、すべてのタブグループをナビゲートできる可能性があります。CMFCTabControl
問題は、これらのメソッドが、タブ内のMDI子ウィンドウへのポインターを取得するためのメソッド/メンバーを提供しないを返すことです。アクティブなタブのインデックスのみを提供します。CMDIChildWndEx*
では、特定のタブグループの「前面」ウィンドウのポインタを取得するにはどうすればよいですか?