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

c++ - PostMessage 経由で文字列を送信するには?

アプリ内で、別のスレッドからダイアログにメッセージを送信したいと考えています。std::exception 派生クラス参照をダイアログに渡したい。

このようなもの:

ダイアログでメッセージを受け取り、エラーを表示したい the_exception.error_string()

std::string the_exception.error_string()using PostMessage を渡すことも問題ないと思います。

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

mfc - 継承されたMFCダイアログのリストボックスに列ヘッダーを追加できないようです。どうしたの?

CDialogクラスから継承するCStdDlgがあります。CStdDlgダイアログには、リストボックス(m_lcList1)、編集ボックス(m_ceEdit1)、ラジオボタン(m_rbButton2)、および[OK]、[キャンセル]、[Button1]のボタンがあります。

CStdDlgから継承するCDerivedDlgという名前の別のクラスを作成しようとしています。CStdDlgですべてを使用したいのですが、CDerivedDlgからのものです。これはここではばかげたテストアプリケーションですが、実際のアプリケーションとまったく同じようなものが必要です。

以下にすべてのコードを示します。問題:リストボックスに列ヘッダーを追加しようとすると、問題が発生し続けます。m_hWnd = NULL

誰かが私に何が悪いのか教えてもらえますか?本当にありがたいです。ありがとうございました。

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

window - CDialog派生クラスからウィンドウハンドルを取得するにはどうすればよいですか?

CDialog派生クラス(CWnd :: m_hWndメンバーなど)からウィンドウハンドルを取得する方法はありますか?

ありがとう

0 投票する
4 に答える
7718 参照

mfc - Visual C++6.0-派生CDialogクラスのOnInitDialogが機能しない

簡単なMFCappwizardダイアログプロジェクトを作成しました。クラスウィザードを使用して、CDialogに基づいてCMyDlgという新しいクラスを作成しました。次に、メッセージマップ画面に移動し、WM_INITDIALOGエントリをダブルクリックして、CMyDlg :: OnInitDialog()ハンドラーを自動的に作成しました。

私が抱えている問題は、CMyDlg :: OnInitDialog()が呼び出されないことです。そこにブレークポイントを設定しましたが、単純に呼び出されません。親ダイアログのOnInitDialog()メソッドが呼び出されますが、CMyDlg :: OnInitDialog()メソッドは呼び出されません。

やらなければならないこと以外に何か特別なことはありますか?

親ダイアログのOnInitDialog()メソッドから独自のメッセージを送信し、CMyDlgで処理するという回避策を実装できましたが、これはその方法ではないと確信しています。


みんなありがとう。ダミープロジェクトを下のリンクにアップロードしました。プロジェクトをビルドしてみると、CMyDlg :: OnInitDialog()が呼び出されないことがわかります。

上記のアドバイスに従ってIDD列挙型とコンストラクターを削除しましたが、まったく違いはありませんでした。CMyDlgdlgはありません。dlg.DoModal()は、通常のCDialogクラスではなく、CMyDlgから派生したメインダイアログ自体として呼び出します。

私はまだこの問題を解決していないので、助けていただければ幸いです。

乾杯

リンクテキスト

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

c++ - SW_MAXIMIZE 使用時のダイアログのアンカー ボタン

これは単純なものでなければなりません:

2 つのボタンを持つ CDialog があります。ダイアログは常にフルスクリーンで開かれます(タイトルバー\ステータスなどはありません...)。m_pMainWnd->ShowWindow(SW_MAXIMIZE);

ボタンを画面の端にスナップさせたい。

サイズ直し等は一切ありません。

0 投票する
6 に答える
35389 参照

c++ - 非モーダル CDialog を表示するには?

MFC の Visual C++ 6.0 で非モーダル ダイアログを作成して表示する方法を誰か教えてもらえますか? 私はこのコードを書きました:

しかし、それは私のアプリケーションがダイアログを表示するのをブロックします。それを行う方法または他の方法が存在するかどうかはわかりません。

ありがとう

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

wpf - MFC CDialog を WPF フォームに入れる

MFC アプリケーションを WPF に移植していますが、おそらくアプリケーション全体を移植する時間はありません。MFC アプリには多くの CDialog ベースのウィンドウがあり、これらのウィンドウの一部を MFC に残し、WPF ウィンドウ内に表示して、WPF からモダリティを制御できるようにすることを考えています。

それを達成する簡単な方法はありますか?そうでない場合、これを処理する別の方法をお勧めできますか?

ありがとう、
破片

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

c++ - ループごとに CDialog を実行する場合と実行しない場合がある無限スレッド

私は、継続的にまたは数秒ごとに実行される別のループが必要な MFC プロジェクトに取り組んでおり、ユーザーからの入力を取得するためにダイアログを実行する必要がある場合とそうでない場合があります。私は AfxBeginThread を使用することを考えていましたが、私がそれについて読んだことから、連続ループでは実際には機能しません。

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

visual-c++ - タイプ CDialog のサブフォーム間でデータを渡す

選択可能なサブフォーム ダイアログ ボックスを表示するためのセクションをメイン ダイアログ ボックスにしようとしている MS Visual C++ 2005 プロジェクトがあります。各サブフォームは同じサイズですが、レイアウトが異なります。選択は、コンボ ボックス コントロールを使用して実行されます。この機能を実装する最善の方法を探したところ、メイン ダイアログ内の子ダイアログを処理するために誰かが 1999 年に開発したこのクラスに出会いました。

http://www.codeproject.com/KB/dialog/childdlg.aspx

追加の変更により:

http://www.codeproject.com/KB/dialog/childdlg.aspx?msg=1287#xx1287xx

このコードは、さまざまなサブフォームを選択して表示するのに非常にうまく機能しますが、あるサブフォームから別のサブフォームにデータを渡すことができないようです。具体的には、各サブフォームはいくつかの編集コントロールで構成されています。ユーザーがサブフォーム #1 のエディット コントロールに値を入力できるようにし、この値がサブフォーム #2 のエディット コントロールまたは静的テキスト コントロールに反映されるようにしたいと考えています。

サブフォーム ダイアログ クラス (名前は CSubFormType で、CDialog のサブクラス) のメンバー関数を使用してこれを実装しようとしました。

void CSubFormType::OnEnKillfocusBox1a(){

}

OnEnKillfocusBox1a を直接呼び出すための CSubFormType のメッセージ マップは次のとおりです。

ON_EN_KILLFOCUS(IDC_Box1a, &CSubFormType:: OnEnKillfocusBox1a)

または間接的に:

ON_BN_CLICKED(IDOK, &CSubFormType::OnBnClickedOk) // CSubFormType::OnBnClickedOk は OnEnKillfocusBox1a を呼び出します

私が抱えている問題は次のとおりです。

1) Box1a にデータを入力した後に Enter キーを押しても、ON_BN_CLICKED(IDOK, &CSubFormType::OnBnClickedOk) が呼び出されません。代わりに、メイン ダイアログ ボックスの OnBnClickedOk メンバー関数が呼び出されます。

2) CSubFormType::OnEnKillfocusBox1a が実行されると (別の場所でのマウス クリックによって)、Box1a に入力された値を同じサブフォーム #1 の Box1b にエコーできますが、サブフォーム #2 の Box2 には値をエコーし​​ません。

これらの問題を解決するために何をする必要があるか、または同じ一般的な機能を実装するためのより良いアプローチについてのガイダンスをいただければ幸いです。

使用されているメイン ダイアログ ボックスのコンボ ボックス選択メンバー関数:

void CMain::OnCbnSelchange() { int 選択;

}

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

c++ - CDialogから派生したダイアログは、DoModal(MFC / C ++)の後に-1を返します

CDialogから派生したダイアログを作成しました(MFCはこれを自動的に実行します)がOnInitDialog、ComboBoxの初期化を行うためにメソッドをオーバーライドする必要がありました。

このメソッドFillInComboはPCSCクラスを呼び出して、このコンボを使用可能なすべてのスマートカードリーダーで埋めます。

ただし、デバッグ中に奇妙な動作が発生します。コンボでアイテムを選択しようとすると、自動的に閉じ(実際にはOnCloseイベントが生成されます)、DoModalは-1を返します。

次に、ソリューションをクリーンアップして再度ビルドしない限り、アプリケーションが正しくロードされることはありません。

これについて可能な限りの助けをありがとう。

後で編集:コンボボックスが原因で問題が発生することに気づきました。理由はわかりません。リストボックスに置き換えましたが、問題は発生していません。