Nicht modaler Dialog



  • Hi!

    Ich soll einen nichtmodalen Dialog erstellen. So weit so gut. Leider scheitere ich am Create-Befehl:

    TransDialog* pTransDia = new TransDialog();
    pTransDia->Create(TransDialog::IDD, GetDesktopWindow());
    

    Fehlermeldung:

    error C2664: 'int __thiscall CDialog::Create(const char *,class CWnd *)' : Konvertierung des Parameters 1 von 'enum ' in 'const char *' nicht moeglich
            Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
    

    was muss ich denn sonst als ersten Parameter nehmen?

    Danke, Eure Trixi



  • versuch es mal so

    TransDialog* pTransDia = new TransDialog(); 
    pTransDia->Create(IDD_DEINTRANSPARENTER_DLG, this);
    

    das sollte eigendlich klappen



  • Leider auch nicht...

    ->

    error C2664: 'int __thiscall CDialog::Create(const char *,class CWnd *)' : Konvertierung des Parameters 1 von 'const int' in 'const char *' nicht moeglich
            Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
    


  • Trixi schrieb:

    Hi!

    TransDialog* pTransDia = new TransDialog();
    pTransDia->Create(TransDialog::IDD, GetDesktopWindow());
    

    was muss ich denn sonst als ersten Parameter nehmen?

    Woher kommt denn TransDialog::IDD? Kann denn eine Dialogklasse eine ID haben? Soweit ich weiß kann man nur Instanzen einer Klasse sowas zuweisen. Erstelle eine ID (IDD_MYDIALOG) und übergib die da, das sollte funktionieren.



  • meine rede

    Erstelle eine ID (IDD_MYDIALOG) und übergib die da, das sollte funktionieren

    weis ja net was es an IDD_DEINTRANSPARENTER_DLG falsches zu verstehn gibt 😉



  • @LowFly: Warst schneller wie ich.

    Soweit ich weiß existieren doch 2 Überschreibungen von Create().

    virtual BOOL Create(
    LPCTSTR lpszTemplateName,
    CWnd* pParentWnd = NULL
    );
    virtual BOOL Create(
    UINT nIDTemplate,
    CWnd* pParentWnd = NULL
    );

    Es scheint so, als ob seine Klasse die zweite Überschreibung nicht kennt. Woher hast du denn TransDialog abgeleitet?



  • von CDialog(TransDialog::IDD, pParent)



  • @AndyDD
    ich hab auch nicht dich damit gemeint 😉


Anmelden zum Antworten