McMaiers Geschrieben 11. November 2003 Geschrieben 11. November 2003 Hallo Leute, ich habe folgendes Probem: Ich will ein Avi ( ohne Codec und ohne Ton) in einem Dialogfenster abspielen! Das ganze mit Hilfe von MFC Klassen - in meinem Fall CAnimateCtrl! Allerdings habe ich Probleme das Avi abzuspielen! Meine Membervariable heisst: m_avi wenn ich schreibe: m_avi.Play; dann sagt mir VC++ irgendwas mit fehlenden Parametern ?!?! Kann mir jemand helfen ?? Wäre super nett MfG McMaiers Zitieren
FinalFantasy Geschrieben 11. November 2003 Geschrieben 11. November 2003 Ich nehme doch mal schwer an, dass das dann m_avi.Play(inrgendwelche Argumente); heissen sollte. Hast vorher VB Programmiert, oder? Zitieren
McMaiers Geschrieben 11. November 2003 Autor Geschrieben 11. November 2003 Hi, Nein hab kein VB programmiert! Die Variable ist so deklariert: CAnimateCtrl m_avi; und so verwendet: void CMpDlg::OnPlay() { m_video.Play; } aber so hauts ned hin Der Fehler heisst: Dem Funktionsaufruf fehlt die Argumentenliste MfG Zitieren
FinalFantasy Geschrieben 11. November 2003 Geschrieben 11. November 2003 Original geschrieben von McMaiers Hi, Nvoid CMpDlg::OnPlay() { m_video.Play; } Ja, wie ich schon gesagt habe: Play ist (nehm ich mal schwer an) eine Methode, von CAnimateCtrl. Eine Methode wird mit MethodenName(); aufgerufen. Das was du aufrufst, ohne die (), wär ein Attribut. Da du mit VC arbeitest, mach doch einfach mal ne ( hinter das Play, dann sollte das Visual Studio eigentlich gleich so nen kleinen Tooltip bringen, was da für Argumente reingehören. Jup, hab nochmal nachgeschaut. Genau so stehts in der MSDN: Call this function to play an AVI clip in an animation control. BOOL Play( UINT nFrom, UINT nTo, UINT nRep ); Parameters nFrom Zero-based index of the frame where playing begins. Value must be less than 65,536. A value of 0 means begin with the first frame in the AVI clip. nTo Zero-based index of the frame where playing ends. Value must be less than 65,536. A value of – 1 means end with the last frame in the AVI clip. nRep Number of times to replay the AVI clip. A value of – 1 means replay the file indefinitely. Return Value Nonzero if successful; otherwise zero. Remarks The animation control will play the clip in the background while your thread continues executing. If the animation control has ACS_TRANSPARENT style, the AVI clip will be played using a transparent background rather than the background color specified in the animation clip. Zitieren
SwordMaster Geschrieben 11. November 2003 Geschrieben 11. November 2003 hi mcmaiers du bist im falschen forum du müßtest in: " C++: Compiler, IDEs, APIs " schreiben bei CAnimateCtrl mußt du erst mit der Methode Open festlegen welches Avi er abspielen soll: Probiern wirs einfach mal: CAnimateCtrl m_avi; m_avi.Open("C:\\test.avi"); m_avi.Play(0,-1,1); müßte funktionieren keine garantie habs jetzt nicht getestet Nen schönen tag noch! MFG SwordMaster Edit: war ich wiedermal zu langsam seh ich grad Zitieren
McMaiers Geschrieben 11. November 2003 Autor Geschrieben 11. November 2003 Ja stimmt, VC hat geholfen! Blöderweise hab ich immer noch nen Fehler! Evtl sagt dir das was ? void CMpDlg::CMpDlg() { //{{AFX_DATA_INIT(CAnimateCtrlPage) m_offnen = _T(""); m_zentriert= TRUE; m_transparent = FALSE; m_autoplay = FALSE; //}}AFX_DATA_INIT m_psp.dwFlags &= ~PSP_HASHELP; // Lose the Help button } Fehlermeldungen: 1. CMpDlg::CMpDlg' : Ergebnistyp fuer Konstruktoren nicht erlaubt 2. CMpDlg::CMpDlg' : Überladene Member-Funktion 'void (void)' nicht in 'CMpDlg' gefunden HILFE! Zitieren
FinalFantasy Geschrieben 11. November 2003 Geschrieben 11. November 2003 Sorry, damit kann ich auch nicht viel anfangen, ohne das ganze Programm gesehen zu haben. Hört sich aber irgendwie an, als ob deine Klassendefinitionen nicht zur Implementierung passen würden. Aber diesen Teil vom Code, sollte doch eigentlich der Classwizzard erstellen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.