ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
637
637
EMPFEHLEN
-
Hallo
ich möchte aus meinem SampleView eine Funktion aufrufen, die sich im CDebugView befindet.
wollte das so probieren, aber das klappt nicht:
C/C++ Code: CDebugView* pView = new CDebugView();
if(pView != NULL)
{
((CDebugView*)pView)->TuWas();
}
Code :1 2 3 4 5
CDebugView* pView = new CDebugView(); if(pView != NULL) { ((CDebugView*)pView)->TuWas(); }
Das ganze spielt sich in eine MDI anwendung ab und der DebugView ist in einer Sizebar http://www.codeproject.com/docking/dockview.asp gebettet
gruß
Thorsten
-
Du bastelst dir ein neues Objekt und erwartest, dass der Zeiger darauf das andere beeinflusst?
An der Stelle, wo du den DebugView erzeugst, merke dir einen Pointer drauf. Mit dem kannst du später problemlos arbeiten.
Alternative: Wenn du an einen CView*-Pointer von dem DebugView rankommst, kannst du den auch brutal casten. Das würde ich aber nur tun, wenn du genau weisst, dass es der richtige View ist.Geändert von Endurion (15.02.05 um 11:07 Uhr)
-
kannst du mir das näher erläutern?!wäre echt nett von dir wen du mir das mal erklärt, wie du das meinst?!
Zitat von Endurion
Weil an diesem Problem hänge ich schon glatte 2 wochen...habs dann zwischen durch zur seite gelegt, aber ich will das endlich kapieren und schaffen. aber meine ganze C++Bücher geben nicht mehr her
(mein hirn auch nicht mehr
)
gruß
Thorsten
-
Legst du den CDebugView selber an? Oder geht das über die Doc-Template?
Wenn du den selber anlegst, musst du ja irgendwo new CDebugView stehen haben. An der Stelle kannst du dir doch den Pointer abgreifen.
-
ich sitz echt momentan auf der leitung

sorry, aber ich bin da leider kein profi
fangen wir mal so an, wie würdest du es machen?!
in TuWas() steht momentan das drin AfxMessageBox("huhu");
wen ich aber z.B. SetTimer(); einfüge, kommt ein fehler in der afxinI datei, das m_hWnd gleich NULL sei.
sow eit kam ich, die frage ist nur, wie kann ich das beheben?! In all meinem schlauen büchern ist der bisherige weg, so beschrieben worden, aber ich mach schon am anfang einen fehler, bloss weiß ich nicht wo.
gruß
Thorsten
-
Hast du in deinem Programm zwei Views, also den CSampleView und den CDebugView gleichzeitig offen?
Wenn nicht, dann klappt das schon mal nicht. Das SetTimer zum Bleistift klappt einfach deshalb nicht, weil der CDebugView (noch) kein HWND hat. Da muss der View schon tatsächlich existieren, nicht nur die Klasse dazu.
Man beachte:
In MFC sind die CWnd-Klassen (und alle abgeleiteten, also auch die CViews) Code-Klassen, die ein HWND klammern. Das beinhaltet aber auch, dass eine CWnd-Klasse existieren kann, OHNE dass das zugehörige HWND existiert. In dem Fall bekommst du dann natürlich auch immer die Assert in Afxinl.
-
genau das hab ich mir auch gedacht *hust hust*
(man will ja nicht so dumm dastehen)
ne spass bei seite. Der CSampleView ist in einem CMDIChildWnd eingebetten und er CDebugView in der CViewbar von codeprojekt.
das ganze sieht dann so aus: Guckst du
beide sind sichtbar
Ähnliche Themen
-
Funktion in einem anderen Fenster aufrufen
Von swunder im Forum Borland CBuilder und VCLAntworten: 0Letzter Beitrag: 02.01.08, 16:54 -
Klasse in einem anderen Projekt aufrufen
Von netrobot im Forum JavaAntworten: 6Letzter Beitrag: 20.12.05, 18:26 -
Funktion aus einem anderen Movieclip aufrufen
Von Blandorin im Forum Flash PlattformAntworten: 6Letzter Beitrag: 13.04.05, 20:24 -
Funktion in eine anderen Form aufrufen? Call?
Von Mailyn im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 03.04.05, 22:13 -
Von einem Fenster eine Methode in einem anderen Aufrufen
Von Benzol im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 08.11.04, 10:45





Zitieren
Login






