Programmieren - alles kontrollieren 4.935 Themen, 20.620 Beiträge

Button, der von einer View auf andere View in VisualC++ zeigt?

beap / 4 Antworten / Flachansicht Nickles

Hallo,


ich brauch etwas Hilfe - vielleicht ist das auch leicht zu loesen. :-)


Ich will Formulare entwerfen, die sich ihre Daten aus einer Datenbanktabelle holen. Ich habe bereits ein Formular fertig, das auch gut funktioniert. Nun will und soll ich ein zweites Formular im selben Projekt(SDI, mit Datenansicht), auch mit Datenbankanbindung an eine zweite Tabelle, erstellen. Dieses Formular soll sich oeffnen, wenn man einen Button auf dem ersten bereits erstellten Formular anklickt.


Fuer die Erstellung der Formulare hab ich jeweils, fuer das erste und das zweite, die Klassen RecordSet, RecordView und .Doc angelegt. Die Anbindung an die Datenbank ist kein Problem, da ja Visual C++ das alles erledigt. Ich hab dann einen Button auf das erste Formular gelegt und ihm in der Registerkarte Nachrichtenzuordnungstabellen des Klassenassistenten eine Nachricht in die View des ersten Formulars gegeben. Nun muss man noch Programmiercode hinzufuegen, damit der Button weiss, dass er das andere Formular (das andere Fenster) aufrufen bzw. oeffnen soll.


Da liegt mein Problem! Ich bin noch neu auf diesem Gebiet und hab daher momentan nicht so ne Ahnung wie ich das realisieren kann. :-(


Wenn mir jemand helfen koennte, waere echt fantastisch!


DANKE!!! :-)

bei Antwort benachrichtigen
beap thomas woelfer „naja: das kommt drauf an wie die 2. form gemacht wurde... im einfachsten fall...“
Optionen

Danke fuer die schnelle Antwort. :-)

Ich habe zunaechst ein neues Formular in den Ressourcen hinzugefuegt, indem ich in der Menueleiste von VisualC++ bei „Einfuegen“ „neues Formular“ angeklickt habe. Anschliessend hab ich dann neue Klassen dafuer angelegt: neue Basisklasse CRecordView, neuer RecordSet(wegen der zweiten Tabelle) und neue .Doc –Klasse.

Im OnButtonClick handler hab ich folgendes schon mal versucht:

void CTest11View::OnButton1()
{
// TODO: Code für die Behandlungsroutine der Steuerelement- Benachrichtigung hier einfügen

CneuView* view = new CneuView();
view->ShowWindow(SW_SHOW);
}

Der Compiler wirft keine Fehlermeldungen aus. Wenn ich das ganze dann starte, erhalte ich erst einen Laufzeitfehler, wenn ich den Button anklicke, der das andere Formular oeffnen soll.
Der Debugger zeigt mir dann einen Fehler bei der Assert-Anweisung in der Funktion ShowWindow:

BOOL CWnd::ShowWindow(int nCmdShow)
{
ASSERT(::IsWindow(m_hWnd));
if (m_pCtrlSite == NULL)
return ::ShowWindow(m_hWnd, nCmdShow);
else
return m_pCtrlSite->ShowWindow(nCmdShow);
}

Mit dieser Meldung kann ich zur Zeit gar nichts anfangen. :-(
Ich hoffe diese Info hilft ein wenig weiter, bei der Loesung meines Problems!! :-)

bei Antwort benachrichtigen