Subclassing
-
hallo,
wenn ich im editfeld enter betaetige soll der text erscheinen, tut er aber nicht was habe ich falsch gemacht??bool status; WNDPROC EditProc; LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { HWND hwndControl; HDC hDC; PAINTSTRUCT ps; switch(message) { case WM_CREATE: { hwndControl = CreateWindow("edit", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 10, 10, 100, 20, hWnd, NULL, ((LPCREATESTRUCT)lParam)->hInstance, NULL); EditProc = (WNDPROC) SetWindowLong(hwndControl, GWL_WNDPROC, (LONG) SubclassProc); return 0; } case WM_PAINT: { hDC = BeginPaint(hWnd, &ps); if(status == true) { TextOut(hDC, 10, 40, "Test", 5); } EndPaint(hWnd, &ps); return 0; } case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(hWnd, message, wParam, lParam); } LRESULT CALLBACK SubclassProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) { switch (message) { case WM_KEYDOWN: { switch(wParam) { case VK_RETURN: status = true; break; } return 0; } } return CallWindowProc (EditProc, hwnd, message, wParam, lParam); }
-
InvalidateRect fehlt irgendwie.

-
wo soll ich das denn hineinbauen?
-
na ja weißt du gar nicht was du tust? guck mal was die funktion macht. und dann überleg nochmal wohin das kommen könnte.
-
also der komplette anfaenger bin ich nicht , ich meine nur in der subclass funktio kann ich es nicht hineinbauen das sich das handle zum window auf das editfeld bezieht und in der paintnachricht das fenster ungueltig zu machen waere bloed...
-
du kannst ja GetParent benutzen oder das Handle zum Parent-Fenster global speichern.
-
und dann nach status = true; die InvalidateRect Funktion aufrufen
-
thx, klappt
-
klappt, doch nicht so ganz wie ich mir das gedacht habe,
hWnd2 = GetParent(hWnd);wenn ich mit GetParent mein Parent-Fenster ermittel und dann sage, dass er dieses neu zeichnen soll, dann zeichnet er alles neu, auch andere anwendungen...
was mache ich jetzt schon wieder falsch?
-
auch andere anwendungen...
*lol*

-
joa iss ganz komisch
-
lad programm mit source hoch.
das will ich unbedingt sehen
-
http://moh.semjon.org/subclassing.zip
was mache ich falsch
-
du holst das parent/owner vom main fenster. und das ist wahrscheinlich der desktop.
-
und wie kann ich das besser machen?
-
mach mal #include <hirn.h>
-
aehm, ja danke,
haette ich gefragt wenn ich es selber wuesste?
-
also hast du es jetzt?!
dir muss doch klar sein was du da tust. du rufst GetParent(HandleVomHauptfenster) auf. Du willst aber GetParent(HandleVomEditControl)
-
nein, ich will das handle von meinem parent window, damit ich das ganze ungueltig machen kann und es neu gezeichnet wird... daher auch die globale variable, damit ich sie in der subclass funktion benutzen kann...
-
