WndProc gibt da eine andere möglichkeit ?
-
hi ich frage euch ob da eine andere möglichekeit gibt die messge zu programmieren also nicht mit:
switch(msg) { case WM_DESTROY: ......... return 0; case WM_CREATE: ...... default: break; }
ist es möglich diesen message als funktion zu machen ohne MFC weil ich schreibe ein C++ Lib
Gruß
-
kannst du dich mal vernünftig ausdrücken francesco?
-
Noch mal !!
Wie Kann ich eine funktion oder einen Message Handler schreiben ohne dieses WndProc zu Benutzen ?.
ist gut so..
B.s.
int WINAPI WinMain(......) { WndMain *App; App = new WndMain; App->CreateWindows(......); App->SetMessageHendler(MessageDestroy,MyfunctionMessageDESTROY); } BOOL WndMain::MyMyfunctionMessageDESTROY() { PostQuitMessage(0); return FALSE; }
danke
Cu...
-
ist es möglich diesen message als funktion zu machen ohne MFC weil ich schreibe ein C++ Lib
klar, die MFC ist auch nur ne C++ lib, keine Hexerei... schau dir mal an wie sie funktionier (Messagemaps,ect.), oder schau die ein etwas leichteres Beispiel an wie z.B:
http://cd9000.netfirms.com/winapi/wrapper.html
-
die mfc und cd9000 haben das aber anders gemacht als er es wünscht.
-
Naja, ungefähr so gehts bei meinen Klassen. Für Messages, die nicht durch virtuelle Funktionen abgedeckt sind, muss man
AddEvent(WM_DRAWGRAPH, &MyWnd::OnDrawGraph);
aufrufen.
Logischerweise im Konstruktor, da die MessageHandler vor dem erstellen des Fensters feststehen müssen (was wäre sonst mit WM_CREATE u.ä.)?Man kann das ganze natürlich auch in C schreiben, ohne Klassen. Dann hat man keine Probleme wegen (nicht) statischer Funktionen. Aber ich seh grad das will er ja gar nicht.
-
deine hp funzt ned mehr
-
gar nicht wahr. :p
-
cd9000 ich habe mal eine Frage zu deinen Klassen. Wofür ist in der Fensterklasse die m_DialogList beziehungsweise die Methoden AddDialog/DeleteDialog da? Ein Fenster kann doch keine Dialoge haben? Wie hat man das zu verstehen?
-
Ich sitz leider grad am Schulrechner, deswegen kann ich nicht genau nachschauen.
Das ist glaub ich aus dem grund, dass die klasse dialog von Window abgeleitet ist. Und da man IsDialogMessage zum verteilen der Messages verwenden muss, müssen irgendwo die Handle aller Dialoge gespeichert werden.
-
Danke cd9000. Hatte es aber gestern schon rausgefunden, aber bin nicht mehr ins Forum gekommen. m_DialogList ist static, also global. Ich hab das nur nicht gerafft weil ich dachte jedes Fensterobjekt hätte diese m_DialogList.
thx & cu