MessageBox und Handle
-
Hi,
Wenn ich MessageBox aufrufe, dann muss ich jedes Mal alle vier Parameter angeben.
Ich hab aber gesehen, dass das eigentlich auch mit nur einem, zwei oder drei Parameter funktionieren müsste. Nur bei mir nicht! Hab ich da irgendwas nicht oder falsch eingebunden?
Aber wenn wir gerade bei den vier Parametern der MessageBox sind. Der erste Parameter sollte ja das Handle des Programms enthalten. Wo bekomm ich das her?
Sorry, bin noch ein kleiner Anfänger bei VC++!

Gruß,
Phips!
-
Nimm
AfxMessageBox("Meldung");und alles wird gut.

-
Servus,
Es gibt mehrere Möglichkeiten. AfxMessageBox wäre da eine oder du benutzt wie gehabt MessageBox. Da gibt es aber nun unterschiede:
//Hier musst du 3 Params angeben. Denn es wird von deinem //derzeitigen Windowhandle ausgegangen MessageBox(LPCTSTR lpText, LPCTSTR lpCaption, UINT uType); //Hier musst du 4 Params angeben. Zusätzlich halt noch das //Handle ::MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType); //Handle bekommst du so this->m_hWnd;*winke*
Hellsgore
-
Stimmt, damit funzt es.
Allerdings würd ich trotzdem gern noch wissen, wie ich an ein Handle von meinem Programm komme. Wer weiß, wann ich das mal brauche...Gruß,
Phips!
-
Ich hab meine eigene klasse gebastelt und in der befinde ich mich auch gerade. Deswegen funzt
this->m_hWndnicht (Fehler: error C2039: 'm_hWnd' : Ist kein Element von 'MyClass').
Nebenbei gesagt funzt auch die MessageBox mit den drei Parametern nicht in meiner Klasse. Hab ich da irgendwas wichtiges nicht mit eingebunden?Gruß,
Phips!
-
Ach wenn du dir deine eigene Klasse zusammenbastelst und auf keine Standardlibs zugreifst musste für die MessageBox:
Header Declared in Winuser.h, include Windows.h
noch includen (ist das ein eingedeutschtes wort?*g*). Steht in der MSDN musste mal gucken. Du hast doch ne Klasse z.B. CDialog. m_hWnd ist eine Membervariable z.B. von dieser Klasse. m_hWnd ist eigentlich nichts anderes als ein Pointer(Zeiger auf eine Speicheradresse) von deinem Objekt. (Wenn ich mich nicht täusche)
Wenn du ein MFC Standardprog mit VC++ erstellst wird normalerweise eine stdafx.h. Dort sind eigentlich schon die wichtigsten Header dateien aufgeführt die man z.B. für eine Messagebox benötigt. Wenn du also eine neue Klasse geschrieben hast brauchst du normal nur in die .h Datei die stdafx.h zu includen.
geht so:
#include "stdafx.h"dann dürfte deine Messagebox funzen....
*winke*
Hellsgore