問題タブ [cdialog]

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 に答える
134 参照

mfc - DoModal によるダイアログの作成中にエラーコード 1407 を取得する

リソースが別の言語からロードされている場合、MFC ダイアログを作成できません。言語が英語の場合、ダイアログが作成されます。ダイアログに CLASS "Singleton Application" という文字列を追加しました。コードでは、このクラス名で RegisterClass を実行します。また、正しい AfxSetResourceHandle を設定しています。この「CLASS」エントリを削除すると、他の言語でダイアログを作成できます。どんなポインタも役に立ちます。

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

c++ - CDialog::Create () メソッドが Vista Windows 7 32 ビット PC で失敗する

ダイアログが Richedit コントロールを持っているため、Win7 32 ビット PC で CDialog::Create() が失敗します。

ダイアログからそのコントロールを削除すると、作成されましたが、Richedit コントロールが必要です。

Richedit コントロールを使用すると CDialog::Create() が失敗するのはなぜですか? また、「AfxInitRichEdit2()」と呼びました

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

mfc - CDialogからCViewへ

したがってMFC、主に から派生したベースのアプリケーションがありCDialog、いくつかのコントロールなどがあります。

特定の理由から、.NET ベースのコンテナ クラスを使用して、別のアプリケーションでホストする必要がありますCView

CDialogしたがって、を使用して作成されたこのものをホストする何らかの方法が必要ですCView

コンテナクラスは私には閉じられています。がCView必要ですが、ダイアログ ベースのアプリケーションを変更できます。

CDialogベースからベースに移行する簡単な方法はありますCViewか? また、何を確認する必要がありますか? 私は MFC にあまり熟練していません。質問は曖昧に聞こえるかもしれませんが、それは私が持っているものです。

助けていただければ幸いです...ありがとう。

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

c++ - CDialog ベースのアプリは AfxGetApp()->m_pMainWnd を設定する必要があります

編集:

最初に奇妙なことを調査する必要があります。質問を「保留」にする方法はありますか?

オリジナル:

CDialog ベースの GUI を使用して、既存のコードベースに取り組んでいます。アプリケーションは、CDialog.DoModal を使用して他の CDialog "SubWindow" を生成する CDialog "MainWindow" で構成されます。これは、サブウィンドウ、メインウィンドウ ブロックなどを表示するときに機能します。

"SubWindow" から AfxMessageBox を呼び出すと、MainWindow が再び有効になり、フォーカスされます。

AfxMessagebox へのデバッグは、関数が mainWindow を取得して再度有効にすることを示しています。これにより、さまざまなバグが発生します。::MesageBox を使用すると正常に動作しますが、約 50 の異なるサブウィンドウがあり、可能であれば、小さなローカライズされた変更のみを行いたいと考えています。

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\mfc\appui1.cpp

エントリ ポイントでは、次のようにします。

好ましい方法は何ですか?メンバーが NULL のままになるように、行をコメントする必要がありますか?

またはそれは副作用を引き起こす可能性がありますか?

私は(まだテストされていない)私も設定できると思います

subDlg.DoModal() の前に、後でリセットしますが、これは、サブウィンドウごとに 1 つずつ、50 の異なるファイルを変更することも意味します。

MFC は m_pMainWnd に依存していますか、それとも NULL のままにしておくべきですか? ありがとう。

編集:

MainWindow を SubWindow のコンストラクターに渡そうとしましたが、役に立ちませんでした。

これは、MainWindow が再度有効になる場所です。 ここに画像の説明を入力

これは、MFC が MainWindow を検出する場所です: ここに画像の説明を入力 m_pActiveWnd を手動で設定する必要がありますか?

(トピック外: mfc のソース コードが利用できるのが気に入っています。)

編集2:

MFC アプリは実際には DLL であり、2 つの方法で呼び出すことができます。単純な loader.exe によって読み込まれるか、他の大きなアプリケーションによって読み込まれます。この他のアプリケーションも MFC を使用する可能性があるため、2 つの異なる CWinApp オブジェクトが存在する可能性があります。

loader.exe によって読み込まれる場合、エラーは発生しません。

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

c++ - オーナー描画ダイアログの影を有効にする方法

オーナー描画ダイアログを使用しています。サブダイアログに影を付けるのが好きです。出来ますか?

少し早いですがお礼を。

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

internet-explorer - 別の新しいダイアログで EndDialog と DoModal で IE がクラッシュする

を使用して CDialog(CAxDialogImpl) を開いていますm_nRet = DoModal();

このダイアログには、オプション ボタンがあります。このオプション ボタンをクリックすると、この既存のダイアログを閉じて、別のダイアログ (オプション ダイアログ) を開く必要があります。既存のダイアログを閉じるには、最初に呼び出しEndDialog(m_nRet)、次にDoModal()もう一度呼び出してオプション ダイアログを開きます。

別のダイアログを正常に閉じて再度開くことができます。ただし、この新しいオプション ダイアログを閉じようとすると、バックグラウンドで IE ページが更新され、次のメッセージが表示されます。

この Web ページに問題があったため、Internet Explorer が閉じて、タブを再度開いた。

私はこの技術に慣れていないので、助けていただければ幸いです。ありがとうございました!