Beenden eines Prg
-
erstell doch in der fensterklasse deiner anwendung eine methode,
die dir eine messagebox ausgibt.Auf die Fensterklasse haste ja immer zugriff, in der app, im fenster selbst und mit
((DeineApp*)AfxGetApp()->m_pMainWnd)->MachmalNeMessageBox("jo so iss es");
Kannste ja deine MessageBox von überall in deinem programm aufrufen
// CMeinFenster is ja bekanntlicherweise von CWnd (oder so) abgeleitet, // daher gibts nu nen zugriff auf die MessageBox von CWnd. // juhu sollte funzen ! // Meine MessageBox is nun der Titel, den du mit FindWindow pollen kannest ! void CMeinFenster::MachmalNeMssageBox(const CString& strMeldung) { MessageBox(strMeldung,"MeineMessageBox"); }
Ich für meinen Teil würde mir einen eigenen Dialog basteln, der eine messagebox "simuliert", und sich über ein einstellbares Timeout selbst terminieren kann.
Braucht man ja nicht viel zu:
- einen Dialog
- ein Static für ein Icon
- ein Static für den Haupttext
- bis zu 3 Buttonseinfach eine klasse, der zb denselben konstruktor besitzt wie die originalmessagebox (so mit buttons, icon, titel.....)
-
ach blödsinn.....
ich dödel hab natürlich falsch gecastet.
Gehört so:((DeineFensterKlasse*)AfxGetApp()->m_pMainWnd)->MachmalNeMessageBox("jo so iss es");
-
Phill schrieb:
Das Problem ist nur, dass es nicht funktioniert, wenn die Box mit z. B. AfxMessageBox() erzeugt wird. Außerdem weiß ich nicht mit welcher Funktion (wie viele es bloß gibt ), die Box, die ich zeitversetzt schließen möchte, erstellt wird.
Normalerweise benutzt man nur AfxMessageBox() und MessageBox() ...
Was genau möchtest du denn machen? Willst du eine MessageBox aus 'deinem' Programm nach wenigen Sekunden schließen oder generell alle von irgendwelchen Programmen...?
Gruß
:: NoName ::
-
Die Messagebox (oder was auch immer
) kommt nach Aufruf einer DLL-Methode als Warnung. Und genau diese möchte ich zeitversetzt schließen.
LG
Phill
-
Phill schrieb:
Die Messagebox (oder was auch immer ) kommt nach Aufruf einer DLL-Methode als Warnung. Und genau diese möchte ich zeitversetzt schließen.
Und diese MessageBox wurde mit AfxMessageBox() erstellt, oder wie?
Phill schrieb:
Das Problem ist nur, dass es nicht funktioniert, wenn die Box mit z. B. AfxMessageBox() erzeugt wird
Also bei mir funktioniert es trotzdem...
Gruß
:: NoName ::
-
Keine Ahnung, kann ja nicht in die DLL hineingucken!
LG
Phill
-
Aber das muss trotzdem funktionieren.
Du musst eigentlich nur gucken wie der Title dieser MessageBox heißt, und
sie dann mit FindWindow(NULL, "Title der MessageBox") suchen und schließen.Gruß
:: NoName ::
-
Sollte das auch funktionieren, wenn die DLL z. B. in Pascal oder Delphi geschrieben wurde?
LG
Phill
-
Also eigentlich schon, solange der Title stimmt...
Gruß
:: NoName ::
-
Ich weiß zwar nicht warum, aber es funktioniert jetzt auf einmal :xmas1:
Danke!
LG
Phill