ASSERT_KINDOF



  • Hallo

    Ich stelle gerade mein Projekt von DynTabCtrl auf CPropertyPage um und bekomme dabei eine Exception, die ich nicht recht zuordnen kann. Mein Programm bleibt immer bei folgender Zeile stehen:

    ASSERT_KINDOF(CPropertyPage, pPage);
    

    und zwar in folgender Funktion stehen:

    void CPropertyPage::AddPage(CPropertyPage* pPage)

    Der Aufruf erfolgt so:

    ClubGeneral page1;
    ctlTab.AddPage(&page1);
    

    wobei ClubGeneral so aussieht:

    #pragma once
    #include "afxwin.h"
    #include "Data.h"

    // ClubGeneral dialog

    class ClubGeneral : public CPropertyPage
    {
    	DECLARE_DYNAMIC(ClubGeneral)
    
    public:
    	ClubGeneral(/*CWnd* pParent = NULL*/);   // standard constructor
    	virtual ~ClubGeneral();
    
    // Dialog Data
    	enum { IDD = IDD_CLUBGENERAL };
    
    protected:
    	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    
    	DECLARE_MESSAGE_MAP()
    
    	CComboBox ctlHowManyFans;
    	CComboBox ctlPublicStanding;
    public:
    	virtual BOOL OnInitDialog();
    };
    

    Ich würde mich sehr über Hilfe freuen.

    chrische



  • Hallo

    Ich habe nun dieses Problem selber gelöst und muss sagen, dass lesen manchmal wirklich hilft.

    chrische



  • Hallo

    Leider hat sich nun aber ein neues Problem ergeben:

    Die Funktion OnInitDialog() wird bei den TabDialogen nicht aufgerufen. Wie kann man denn in diesem Fall den Dialog konfigurieren?

    chrische


  • Mod

    Zu beachten ist, dass OnInitDialog bei einem PropertySheet erst aufgerufen wird, wenn die spezielle Seite aktiviert wird.

    In Deinem Fall müsste in jedem Fall der OnInitDialog der ersten Seite aufgerufen werden!



  • Hallo

    es ist aber richtig, die einzelnen Tabdialoge von CPropertyPage und nicht von CDialog abzuleiten?

    chrische


Anmelden zum Antworten