1

我正在开发 MFC C++ 应用程序,但在我的项目中尝试打开另一个对话框时遇到了问题。

在这个小视频中查看 I 记录器:单击此处 (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 回答