1

MFC C++ アプリケーションで作業していますが、プロジェクトで別のダイアログを開こうとしたときに問題が発生しました。

この小さなビデオで私はレコーダーを参照してください:ここをクリック (Youtube)

私のコードの一部:

CFindWindow window;
window.DoModal();

これはFindWindow.hファイルです:

#pragma once


// CFindWindow dialog

class CFindWindow : public CDialogEx
{
    DECLARE_DYNAMIC(CFindWindow)

public:
    CFindWindow(CWnd* pParent = NULL);   // standard constructor
    virtual ~CFindWindow();

// Dialog Data
    enum { IDD = IDD_FINDWINDOW_DIALOG };

protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

    DECLARE_MESSAGE_MAP()
};

これを手伝うために何が必要なのかわかりません。教えてください。必要なものは何でも提供します。

前もって感謝します!

4

4 に答える 4

2

デバッグなしでソリューションを提供することは事実上不可能です。

以前の投稿からのアドバイスに従っても、この動作を複製するアプリケーションまたはテスト アプリケーションを投稿するのに役立たない場合。

于 2013-01-12T17:45:03.970 に答える
1

リソース コンパイラが変更を検出しないことがあります。ソリューションを再構築すると、これを軽減できます。

于 2013-01-12T11:47:55.713 に答える
0

そのコードをボタン ハンドラーに配置します。そこにブレークポイントを配置して、実際に呼び出されることを確認します。または、TRACE マクロは、デバッグ ビルドの出力をログに記録するのにも役立ちます。提供された情報だけでは (そのビデオもあまり役に立ちません...)、何が問題なのかを判断するのは困難です。

于 2013-01-12T10:15:29.283 に答える
0

IDD_FINDWINDOW_DIALOG と同じ値を持つ他のリソースが既に存在するかどうかを確認します。IDD_FINDWINDOW_DIALOG のソース コードをチェックインし、ID 番号を確認して、同じ ID を持つ他のリソースがあるかどうかを確認します。

ブレークポイントを置いて DoModal に入り、試してみてください。

または、コードを try catch ブロックに入れて、例外があるかどうかを確認します。

ボタン クリックをクリックして findwindow フォームを呼び出すメインフォームが、findwindow のポップアップをブロックする可能性のあるイベントをオーバーライドしているかどうかを確認します。

于 2013-01-12T11:02:12.033 に答える