問題タブ [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 投票する
0 に答える
804 参照

toolbar - MFC Feature Pack - 新しいツールバーを追加した後、ツールバーが間違った位置に読み込まれる

セッション間で位置が保存される複数のツールバー (CMFCToolbar) を備えた MFC Feature Pack アプリがあります。

新しいツールバーを追加し、いくつかのボタンを他のツールバーから新しいツールバーに移動しました。

問題は、アプリを最初に開いたときに、すべてのツールバーが正しく配置されていないように見えることです (1 つがメニュー バーの上にある、行が多すぎるなど)。それらを移動してアプリケーションを閉じると、状態が正しく保存され、次のセッションで取得されます。

コードを調べたところ、呼び出しをスキップするとCWinAppEx::LoadState()CFrameImpl::OnLoadFrame()バーが「初期位置」、つまり新規インストールで表示される場所に配置されていることがわかりました。したがって、新しいツールバー、または既存のボタンからの削除は、状態の読み込みを妨げています。

状態を正しくロードする方法についてのアイデアはありますか? LoadState()または、最初の実行でのみへの呼び出しを防ぐ方法は?


注:この問題は、私の他の未回答の質問に似ている可能性があると思います: MFC 機能パック - ユーザーのカスタマイズを削除せずにアクセラレータを追加する方法

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

c++ - MFC: 子ウィンドウにフォーカスを設定するときにアプリがフォアグラウンド ウィンドウにならないようにする方法

操作のプロセス中に特定のコントロールにフォーカスを設定できる MFC MDI アプリがあります。たとえば、操作の結果が別のタブにより適している場合、アクティブなタブを変更する場合があります。

SetFocus が発生したときにアプリにフォーカスがある場合、これは問題なく、タブが変更され、正しいコントロールにフォーカスがあります。ただし、アプリにフォーカスがない場合 (つまり、操作が完了するのを待っている間にユーザーが別のアプリをクリックした場合)、子ウィンドウの SetFocus によって親 MDI フレームで OnActivate が発生し、アプリがフォアグラウンド ウィンドウになります。

ユーザーが別のアプリで作業している場合、アプリ全体がフォアグラウンド ウィンドウにならないように子ウィンドウにフォーカスを設定するにはどうすればよいですか。

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

mfc - VS2010、MFCEditBrowseControl ヒープ クラッシュ

新しい MFC ブラウズ編集コントロールを含む単純なダイアログがあります。コントロールは、メンバー変数ウィザードを使用して 'CMFCEditBrowseCtrl m_edit' にリンクされました。ウィザードが生成したマッピングは問題ないようです。

最初の実行時に、編集コントロールに中国語の文字または疑問符が入力され、参照ボタンが最初に押されたとき、またはファイルが選択されるとすぐにクラッシュします。

ヒープ破損エラーでアプリがクラッシュします。

新しいテスト プロジェクトを作成して同じ手順を実行すると、すべて正常に動作します。問題が発生するのは、約 VS2003 -> VS2005 -> VS2008 -> のアップグレード履歴を持つ、より大きな古いプロジェクトにブラウズ エディット コントロールを実装しようとした場合のみです。 VS2010。

コードに奇妙な点はありません。プロジェクトのマニフェストまたはその他の初期化命令/競合と関係があるのではないかと思います。テスト プロジェクトから CWinApp::InitInstance コードをコピーして貼り付けましたが、それによって何かが明らかになるかもしれませんが、動作は同じです。

何か案は?

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

c++ - ボタンのオンクリックでテキストファイルの読み取りを一時停止し、mfc vc ++のオンクリックボタンで再開する方法は?

ボタンのオンクリックでテキストファイルの読み取りを一時停止し、mfc vc ++のオンクリックボタンで再開する方法は?

ファイルは次のように開かれます CFileException fileException;

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

c++ - LoadFrame()MFC、RIBBON、VS2008、C++の呼び出しでのアサーションの失敗

MFCリボンを既存のSingleDocアプリケーションに組み込んでいます。LoadFrame()タイプのオブジェクトで メソッドを呼び出しているときにアサーションエラーが発生しますCMainFrame : public CFrameWndEx

CMainFrame* pFrame = new CMainFrame;

if (!pFrame) return FALSE;

m_pMainWnd = pFrame;

pFrame->LoadFrame(IDR_MAINFRAME, WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL, NULL);

アサーションは関数でスローされます

CMFCRibbonCategory* CMFCRibbonBar::AddPrintPreviewCategory()

行で

CString strLabel; ENSURE(strLabel.LoadString(IDS_AFXBARRES_PRINT_PREVIEW));

呼び出しスタック(ここでは関数呼び出しについてのみ説明しました)は次のとおりです-

CMFCRibbonBar :: AddPrintPrevieCategory()

CMFCRibbonBar :: RecalcLayout()

CMFCRibbonBar :: LoadState(const char * lpszProfileName = 0x06bdf2f8、int nIndex = 59398、unsigned int uiID = 4294967295)

DockingManager :: LoadState(const char * lpszProfileName = 0x06bdf2f8、unsigned int uiID = 128)

CFrameImpl :: LoadDockState(const char * lpszSectionName = 0x06bdf2f8)

CFrameImpl :: OnLoadFrame()

CFrameWndEx :: LoadFrame(unsigned int nIDResource = 128、unsigned long dwDefaultStyle = 13598720、CWnd * pParentWnd = 0x00000000、CCreateContext * pContext = 0x00000000)

App :: InitInstance()-この関数では、ここでLoadframeを呼び出します

今、私がしているのはLoadFrame関数を呼び出すことだけなので、これをどうやって行うのか疑問に思っています。

どんな助けでもありがたいです。ありがとう。

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

c++ - MFC RIbbon - 同じパネル上の複数の CMFCRibbonComboBox は、任意の onComboBox で実行された selectitem アクションに応答します

リボンの同じパネルに 2 つの CMFCRibbonComboBox があります。例:

問題は、UI(USer Interface) から groupNames コンボボックスで「グループ 1」を選択すると、グループ individualComputers から「コンピューター 1」も選択されることです。各コンボボックス グループを互いに独立させるにはどうすればよいですか? ありがとう。

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

visual-c++ - CMFCColorButton::SetPalette

最近、古いカスタム コントロールを置き換えて、アプリケーションで CMFCColorButtons を使い始めました。ここで、選択できる色を制限したいと思います。

そこで、「SetPalette」というメソッドを見つけました。OnInitDialog メソッド内で次のような CPalette を作成します。

その後、コード内で CMFCColorButtons が作成され、OnInitDialog でも呼び出されるパレットが設定されます (このダイアログでは合計 6 つのカラー ボタン)。

動作は期待どおりではありません。ボタンをクリックすると、カラー パレットがディスプレイ全体に広がり、エントリごとに 1 つの色しか表示されません (100 行と 8 列のように) ...

私の ColorButton の問題を解決できるかもしれませんが、Web で追加のヘルプが見つかりませんでした。前もって感謝します!

- クリス

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

mfc - MFC Feature Pack アプリケーションをセカンダリ モニターで最大化して復元すると、サイズが正しくない

MFC Feature Pack (VS2008) を使用して開発されたアプリケーションが、セカンダリ モニターで最小化から最大化に復元されると、プライマリ モニターに表示されているかのようにサイズが変更され、Windows タスクバー用のスペースが空くことに気付きました。

私自身のプログラムだけでなく、MFC Feature Pack のサンプルでもこの​​動作を見つけたので、MFC Feature Pack クラスのバグだと思います。

たとえば、Visual Studio のサンプルをビルドして実行し、セカンダリ モニターに移動して最大化し、最小化して元に戻すと、次のようになります。

セカンダリモニターで窓の下の隙間を確認

これに対する既知の回避策はありますか? 最近のバージョンの MFC では解決されましたか?

アップデート:

セカンダリ モニターがメイン モニターの右側にある場合にのみ発生するようですが、左側にある場合は発生しません。

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

mfc-feature-pack - MFC MDI タブ付きアプリの CMFCVisualManager カスタム テーマ

CMFCVisualManager を使用して、MFC MDI タブ付きアプリ カスタム テーマのサンプルを持っている、または作成できる人はいますか? お金払ってもいいのに..

ありがとう。