edit feldneu zeichnen
-
Hallo , habe mal angefangen mich mit edit boxen zu beschätigen allerdings taucht
folgendes Problem auf.#define ed1 1 static HWND hwnded;Ich erstelle mein erste edit feld:
switch (message) /* handle the messages */ { case WM_CREATE: { hwnded = CreateWindowEx(WS_EX_CLIENTEDGE ,"edit", NULL,WS_CHILD | WS_VISIBLE | ES_LEFT|ES_AUTOHSCROLL|ES_AUTOVSCROLL|ES_MULTILINE, 0, 0, 700, 250, hwnd, (HMENU) ed1, ((LPCREATESTRUCT) lParam) -> hInstance, NULL) ; SendMessage(hwnded, WM_SETFONT,(WPARAM)GetStockObject(DEFAULT_GUI_FONT),0); }So in der zwischenzeit wird das ganze beschreiben und später möchte ich das ganze neu zeichnen :
case IDM_DRAWNEW: { DestroyWindow(hwnded); hwnded = CreateWindowEx(WS_EX_CLIENTEDGE ,"edit", NULL,WS_CHILD | WS_VISIBLE | ES_LEFT|ES_AUTOHSCROLL|ES_AUTOVSCROLL|ES_MULTILINE, 0, 0, 700, 250, hwnd, (HMENU) ed1, ((LPCREATESTRUCT) lParam) -> hInstance, NULL) ; SendMessage(hwnded, WM_SETFONT,(WPARAM)GetStockObject(DEFAULT_GUI_FONT),0); } break;Der Compiler meldet keine Fehler doch wenn ich das programm starte und das Feld neu zeichnen lasse kommt der windows fehler:
"ad.exe fubktioniert nicht mehr richtig"Hoffe jemand kann mir sagen wieso der Fehler kommt.
Danke
-
Editfelder werden von Windows in der class "edit" selbst verwaltet. Sobald sich (durch Eingabe) darin etwas ändert, macht das Windows allein. Ein eigenes 'Neuzeichnen' ist nicht erforderlich.