gyrosundmaronen
Grünschnabel
Tach zusammen..
Ich hab eine Dialogklasse die bestimmte Filme abspielen soll. Welche Filme der Dialog abspielen soll, wird ihm über TCP/IP mitgeteilt.
Dazu wird ein Protokoll ausgewertet, die Kommandos extrahiert und an eine Klasse "CActionControl" geschickt die dann die Kommandos auswertet und an den Dialog "CVisualDlg" weiterleitet.
Wenn ich jetzt versuche in der Klasse CActionControl ein Object von CVisualDlg anzulegen, springt er sofort in den Konstruktor von CVisualDlg
Objekt bilden in CActionControl:
In DoCommand werden diverse Timer aufgerufen die verschiedene Videos starten.
Konstruktor der Klasse CVisualDlg:
Dort wird irgendwie ein neuer Wert(0x00000000) für CWnd gebildet {CVisualDlg hWnd = ?}. Das Problem ist jetzt das der Eventloop für meinen Timer nicht mehr funktioniert. Jedes mal wenn ein Timer gestartet oder zerstört wird kommt eine Fehlermeldung: Debug Assertion Failed
File:afxwin2.inl Line:171
Ich glaube mal das er die Timer events nicht mehr an das richtige Window schickt oder nicht mehr auf die Klasse CVisualDlg zugreifen kann. Der Dialog wurde schon erzeugt. Ich möchte jetzt über die Funktion DoCommand einen neuen Film starten. Diese Filme werden über ein ActiveX-Steuerelement gestartet. Also ich möchte den Dialog nicht noch einmal starten. Die Funktionialität ist die gleiche, als wenn ich ein Label über eine Externe Klasse mit Text füllen möchte. Der Dialog existiert schon ich möchte nur auf das Steuerelement zugreifen.
Kann mir jemand sagen woran das liegt oder gibt es noch eine andere Möglichkeit
im Dialog Funktionen aufzurufen.
Danke schon mal im voraus!
Beste Grüsse
gyros
Ich hab eine Dialogklasse die bestimmte Filme abspielen soll. Welche Filme der Dialog abspielen soll, wird ihm über TCP/IP mitgeteilt.
Dazu wird ein Protokoll ausgewertet, die Kommandos extrahiert und an eine Klasse "CActionControl" geschickt die dann die Kommandos auswertet und an den Dialog "CVisualDlg" weiterleitet.
Wenn ich jetzt versuche in der Klasse CActionControl ein Object von CVisualDlg anzulegen, springt er sofort in den Konstruktor von CVisualDlg
Objekt bilden in CActionControl:
Code:
#include "VisualDlg.h"
void CActionControl::givingCommand(int c_id,int LF,int OL,char VF[128])
{
CVisualDlg m_visual;
m_visual.DoCommand(c_id);
}
Konstruktor der Klasse CVisualDlg:
Code:
CVisualDlg::CVisualDlg(CWnd* pParent /*=NULL*/)
: CDialog(CVisualDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CVisualDlg)
// HINWEIS: Der Klassenassistent fügt hier Member-Initialisierung ein
//}}AFX_DATA_INIT
// Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf //benötigt
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
File:afxwin2.inl Line:171
Ich glaube mal das er die Timer events nicht mehr an das richtige Window schickt oder nicht mehr auf die Klasse CVisualDlg zugreifen kann. Der Dialog wurde schon erzeugt. Ich möchte jetzt über die Funktion DoCommand einen neuen Film starten. Diese Filme werden über ein ActiveX-Steuerelement gestartet. Also ich möchte den Dialog nicht noch einmal starten. Die Funktionialität ist die gleiche, als wenn ich ein Label über eine Externe Klasse mit Text füllen möchte. Der Dialog existiert schon ich möchte nur auf das Steuerelement zugreifen.
Kann mir jemand sagen woran das liegt oder gibt es noch eine andere Möglichkeit
im Dialog Funktionen aufzurufen.
Danke schon mal im voraus!
Beste Grüsse
gyros