問題タブ [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.

0 投票する
2 に答える
876 参照

visual-c++ - MFC 機能パック - 閉じるとドッキング可能なペインを表示できませんでした

ウィザードを使用して Office 2007 スタイルを選択すると、左側にドッキング可能なファイル エクスプローラー ペイン、右側にドッキング可能なプロパティ ペインという IDE のような UI を表示できます。

ただし、これらのドッキング可能なペインを閉じると、再び表示する方法はありません。プロジェクトを再コンパイルしても。

いくつかのフォーラムを検索したところ、この問題を抱えているのは私だけではないようです。これらのペインを再度表示する方法はありますか?

0 投票する
2 に答える
2446 参照

visual-c++ - MFC 機能パック - プロパティ グリッド コントロールを更新する方法

私は MFC を初めて使用し、「MFC 機能パック」の新機能について少し混乱しています。ウィザードを使用して、IDE のようなアプリケーションを作成しました。左側にはドッキング可能なファイル エクスプローラーがあり、右側にはドッキング可能なプロパティ ウィンドウがあります。ON_WM_LBUTTONDBLCLK と GetItemText() を使用して、ファイル エクスプローラー ウィンドウで選択したアイテムを取得できます。

質問: ファイル エクスプローラー ウィンドウで項目をクリックすると、プロパティ ウィンドウが「更新」されるはずです。元。ツリー コントロールの項目「ボタン」をクリックすると、プロパティ ウィンドウに「画像」、「フォント」、および「色」が表示されます。propertygridCtrl の内容をどのように更新しますか?

0 投票する
1 に答える
677 参照

c++ - MFC 機能パックのバグ? 休止状態 (スリープ モード) 後にリボン ベースの GUI が復元されない

私は可能な限り強制しましたバグWindows Vista での MFC Feature Pack の機能。簡単に再作成できます。

  1. MFC Feature Pack (リボン ベースのインターフェイスを使用) を使用して、新しい SDI アプリを作成します。必要に応じて、フローティング パネルを追加することもできます。
  2. 何も変更せず、リリースをビルドするだけです。
  3. Visual Studio を閉じてアプリケーションを実行し、コンピューターをスリープ モード (休止状態) にします。
  4. コンピュータをスリープ モードから復元すると、アプリケーションが正常に復元されていないことがわかります。ウィンドウのキャプションが正しく表示されません。ウィンドウサイズを大きくする(フレームをカットする)などは不可能です。

誰かがこの行動を強制されましたか?

Windows Vista Business SP2 を使用していますが、デスクトップとラップトップで同じ動作をしています。残念ながら、XP やその他のプラットフォームではテストされていません。

PS: 表示スタイルを別のスタイルに切り替えて WM_POWERBROADCAST の受信時に戻すことで、ツールバー ベースのアプリケーションで言及された問題を解決しました。しかし、このトリックはリボン ベースのアプリケーションでは機能しません。

0 投票する
1 に答える
3040 参照

visual-c++ - Visual C ++の「メニューの展開」矢印を削除する方法は?

Visual C ++でサブメニューを使用してメニューを作成すると、サブメニューが矢印で始まり、その内容を表示するにはクリックして展開する必要があります。サブメニューを(クリックする矢印なしで)すでに展開しておく方法は(プログラムで)ありますか?

これは、前述の矢印をクリックする前後の、私が話していることの画像です。 これもここにありますスクリーンショット

0 投票する
1 に答える
3023 参照

mfc - MFCタブ付きドキュメント-マウスの中ボタンでドキュメントを閉じる方法を教えてください。

(MFC Feature Packを使用して)新しいMFCアプリケーションを作成し、すべての既定値を使用する場合は、[完了]をクリックします。新しい「タブ付きドキュメント」スタイルのMDIアプリケーションを作成します。

代替テキスト

タブを中クリックしてタブ付きドキュメントウィンドウを閉じることができないのが本当に面倒なことを除けば、これらは素晴らしいと思います。

これは、Firefox、IE、Chrome、さらに重要なのはVS2008で可能です。ただし、タブの中央のボタンをクリックしても何も起こりません。

タブバーをオーバーライドしてON_WM_MBUTTONDOWNメッセージを処理できるようにする方法がわかりません。何か案は?

編集:CMDIFrameWndEx::GetMDITabsから返されたCMFCTabCtrlをサブクラス化する必要があると推測しています...

0 投票する
1 に答える
2021 参照

mfc-feature-pack - CFormView 派生クラスを CMFCTabCrtl にアタッチする方法は?

基本クラスの CFormView、リボン、キャプション バーなどを使用して MFC MDI プロジェクトを作成しました。次に、2 番目のタブを追加し、2 番目のビューをそのタブにアタッチします。新しいダイアログを作成し、CFormView 派生クラスを追加しました。

コードは次のとおりです。

さて、些細なことを見逃したか、間違った方向に進んだことは確かですが、新しいビューを表示することはできません。また、CMainFrame で AFX_WM_CHANGE_ACTIVE_TAB または AFX_WM_CHANGING_ACTIVE_TAB をキャッチできません。メッセージは CMFCBaseTabCtrl::FireChangingActiveTab から送信されますが、何も起こりません。

0 投票する
1 に答える
2322 参照

refresh - アイテムを追加/更新した後にCMFCRibbonBarを更新する方法

リボンアイテムを追加した後、またはアイテムを更新するメソッドを呼び出した後、リボンは正しく更新されません。ウィンドウのサイズを変更しても問題ない場合もありますが、ほとんどの場合、パネルは折りたたまれた状態です。

ReposPanels、RecalcWidths、RecalcLayoutなど、考えられるすべての関数を試しましたが、何も機能しませんでした...

0 投票する
1 に答える
1456 参照

c++ - CMFCPropertyFontProperty からフォント サイズを取得する方法

このコード ブロックを使用して、ユーザーが CMFCPropertyFontProperty コントロールのフォント ダイアログから選択したフォント名、スタイル、およびサイズを取得しています。名前とスタイルはすでに取得できていますが、サイズは別の値を返すようです。

それには次の式があることに気づきました。

しかし、私はそれを機能させることができないようです... CMFCPropertyFontProperty から hDC を取得するにはどうすればよいですか? 助けてください...

0 投票する
2 に答える
3234 参照

c++ - CMFCMenuBar がアクセラレータ テーブルを利用しないのはなぜですか?

VS2008 を使用する doc/view プロジェクトでは、メニュー項目の追加と削除がメニューの UI に反映されるため、 MFCMenuBarはプロジェクトから正しい MENU リソース (IDR_MAINFRAME) をロードするように見えます。アクセラレータをデフォルトのメニュー項目に追加することさえできます (たとえば、Ctrl+O を [開く...] 項目に追加します)。ただし、アクセラレータ テーブル (IDR_MAINFRAME) はメニューに接続されていないようです。Open... のデフォルトの Ctrl+O を Ctrl+7 のようなものに変更しても機能しません。Ctrl+O は引き続き Open... メニュー項目に追加され、Ctrl+O は引き続き Open... ハンドラを呼び出します。リソース ファイルにはアクセラレータ テーブルが 1 つしかないため、CMFCMenuBar がアクセラレータ情報をどこで取得しているかわかりません。

この時点で、IDR_MAINFRAME アクセラレータ テーブルを手動でロードし、メッセージを自分で変換することで、アクセラレータを動作させることができました。ただし、CMFCMenuBar はまだ既定のアクセラレータを追加しています。

ここで何が起こっているのか誰でも説明できますか? MFCMenuBar にアクセラレータ テーブルを強制的に使用させ、アクセラレータを追加しないか、正しいアクセラレータを追加するにはどうすればよいですか?