Problem mit DoDataExchange



  • Hab mir aus Codeproject ein Hyperlink-Projekt in mein Programm eingebaut. Ziel ist es, in der About-Box einen Static Text mit einer Email-Adresse zu verlinken.

    class CAboutDlg : public CDialog
    {
    public:
        CAboutDlg();
    
        // Dialogfelddaten
        enum { IDD = IDD_ABOUTBOX };
        CMyHyperLink m_MyEmail;        // Membervariable des Static Text
        BOOL OnInitDialog(void);
    
    protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV-Unterstützung
    
    // Implementierung
    protected:
    	DECLARE_MESSAGE_MAP()	
    };
    
    void CAboutDlg::DoDataExchange(CDataExchange* pDX)
    {
        CDialog::DoDataExchange(pDX);
        // Static Text hat ID = IDC_HYPERLINK
        DDX_Control(pDX, IDC_HYPERLINK, m_MyEmail); // HIER TRITT DER FEHLER AUF!
    }
    
    BOOL CAboutDlg::OnInitDialog(void)
    {
        m_MyEmail.SetLinkUrl("mailto:mailaddress@mail.com")
        return 0;
    }
    
    BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
    END_MESSAGE_MAP()
    

    Der Fehler tritt beim Schließen der About-Box auf, es kommt in der dlgdata.cpp zu einer unbehandelten Ausnahme bei

    ASSERT(!pDX->m_bSaveAndValidate);
    

    Wo liegt das Problem? Habe ich was vergessen/übersehen?


Anmelden zum Antworten