2013-01-12 60 views
1

我在MFC C++應用程序的工作表現,而是試圖在我的項目,打開另一個對話框,我遇到的問題。我的對話框沒有在MFC C++

見這個小視頻我記錄:click here (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() 
}; 

我不知道你需要什麼爲了幫助我,請告訴我,我會爲您提供任何您需要的信息。

在此先感謝!

+0

MFC合理使用'ASSERT'和'ENSURE'。如果你在調試中運行,並且你犯了錯誤,MFC通常會告訴你。 VS也附帶MFC的源代碼,所以單步執行MFC代碼也可能會有所幫助。 –

+1

您是否嘗試過重建解決方案? –

+0

@ ta.speot.is寫回答,因爲這是我想過的最後一件事:)),但它現在可行。 – Victor

回答

1

有時候資源編譯器沒有檢測到變化。重建解決方案可以幫助緩解這一問題。

0

您將該代碼放入按鈕處理程序中。在那裏放置一個斷點以確保它真的被調用。或者,TRACE宏也可以幫助記錄調試版本的某些輸出。只有提供的信息(並且視​​頻也沒有太大的幫助......)很難說出什麼問題。

+0

我已將斷點放在'window.DoModal();'上,它看起來像代碼正在運行...... – Victor

0

檢查是否存在具有相同的值IDD_FINDWINDOW_DIALOG一些其他的資源了。 檢入IDD_FINDWINDOW_DIALOG的源代碼並查看ID號並查看是否有其他資源具有相同的ID。

把一個破發點,進入的DoModal和嘗試。

或者把你的代碼在一個try catch塊,看看是否有任何異常。

檢查從中單擊按鈕被點擊調用FindWindow函數形式MainForm中已覆蓋其可能會阻止FindWindow函數彈出任何事件。

2

幾乎不可能在沒有調試的情況下爲您提供解決方案。

如果從以前的帖子以下建議不幫你發佈你的應用程序或複製此行爲測試應用程序。