Poroblem mit SendMessage in Dialogbasierter Anwendung
-
Hallo,
ich möchte beim Beenden eines Dialoges eine WM_Message die ich vorher deklariert habe an einen anderen Dialog senden.
Mein Porblem ist, das ich in meinem Dialog kein CWindow Objekt erstellen kann und somit nur die SendMessage mit 3 Parametern verwenden kann (CWnd::SendMessage anstatt CWindow::Sendmessage)void CDlgServiceCall::OnOK() { CWnd *pWndPrev=FindWindow(_T("CDolmetscherDlg"),NULL); pWndPrev->SendMessage(WM_SERVICECALLCLOSE, 0, 0); ... }
da krieg ich aber eine AccesViolation.
Wie krieg ich da ein CWindow Objekt????Desweiteren wie greife ich auf eine globale Variable zu?
Ich bekomm immer diese fehler Meldungerror C2205: 'm_bActive' : cannot initialize extern variables with block scope
Help! I need Somebody
-
wenn die globale Variabel woanders steht(also in einer anderen Headerdatei), musst du dort, wo sie gebraucht wird, "extern <variablenname>" angeben, damit der Linker bescheid weis.
-
Hab ich doch!
im cpp steht
extern m_bActive=FALSEund im Header wird deklariert!
-
monne81 schrieb:
Hab ich doch!
im cpp steht
extern m_bActive=FALSEund im Header wird deklariert!
das ist falsch was du hier machst. du definierst die Variable, dadurch wird eine neu mit selben Namen erstellt. Du darsft nur deklarieren, wenn es keine neue sein soll, also nur
extern m_bActive;
und in deinen Methdoe kannst du dann den Wert setzen
m_bActive = false;
-
Alles klar !
Thanx!
-
extern m_bActive;
klappt das? weis jetzt garnet mehr ob der Typ da mit hin musste
*waah* kleiner blackout
extern BOOL m_bActive;
das zweite ist glaube korrekt?
edit: jo du musst den Typ mit abgeben!!!
-
btw: CWindow ist ATL. Das willst du nicht. Wenn du unbedingt die mit 4 Parametern aufrufen willst, dann nimm die WinAPI-Funktion ::SendMessage
-
Danke für Eure Tipps!
Funktioniert alles wie geschmiert!