Textbox/feld erstellen
-
Okay ich habe doch noch eine Frage.
Der zweite Parameter von CreateWindowEx is ja lpClassName...
Was kann man da alles eintragen? Ja ich weiß prinzipiell kann ich da rein schreiben was ich will aber es gibt ja ein Paar vordefinierte "Namen" wie z.B. edit wodurch man eine Editbox macht.Also was gibt es da noch?
-
-
Also tut mir Leid aber wenn ich z.B. WC_EDIT eingebe funktioniert das nicht...
Mag sein das ich mal wieder was flasch gemacht hab, in dem Fall schreib bitte ein bisschen mehr als ein Link.EDIT: Es lässt sich kompilieren aber es bringt nichts.. also da ist keine Editbox entstanden.
-
Ich hoffe, du hast WC_EDIT nicht in Anführungszeichen gesetzt.
-
WildChild schrieb:
Also tut mir Leid aber wenn ich z.B. WC_EDIT eingebe funktioniert das nicht...
Nun, lese mal die Fußzeile (Signatur) Deines Vorposters MFK.
Und bitte zeig hier zukünftig gleich Deinen Code mit, ohne daß wir Dich ständig dazu auffordern müssen. Sonst können wir Dir nicht helfen wo denn nun der Fehler steckt.
Du brauchst doch Hilfe von uns, oder irre ich mich?
Martin
-
Nein hab ich nicht.
Ich dachte das kann man sich denken wie der Code nun aussieht ^^
Aber hier ist er die CreateWindowEx nochmal ich denke das reicht oder?
hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, WC_EDIT, L"", WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, 10, 25, 350, 280, hWin, NULL, GetModuleHandle(NULL), NULL);
-
Was soll ich sagen, bei mir geht's. Zeig mal den vollständigen Code.
-
Also mit L"EDIT" funktionierts wunderbar...
Hier der komplette Code:#define WIN32_LEAN_AND_MEAN #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <CommCtrl.h> LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR nCmdLine, int nCmdShow) { HWND hWnd; MSG Msg; WNDCLASSEX wc; wc.cbClsExtra = 0; wc.cbSize = sizeof(WNDCLASSEX); wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wc.hCursor = LoadCursor(hInstance, IDC_ARROW); wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wc.hInstance = hInstance; wc.lpfnWndProc = WndProc; wc.lpszClassName = L"WndClass"; wc.lpszMenuName = NULL; wc.style = CS_HREDRAW | CS_VREDRAW; if(!RegisterClassEx(&wc)) return 0; hWnd = CreateWindowEx(NULL, L"WndClass", L"WndName", WS_OVERLAPPEDWINDOW, 400, 400, 450, 350, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, nCmdShow); while(TRUE) { while(PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } if(Msg.message == WM_QUIT) break; } } LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { static HWND hEdit; static HWND hEdit2; static HWND hWin; switch(Msg) { case WM_DESTROY: { PostQuitMessage(0); return 0; } break; case WM_KEYDOWN: { if(wParam == VK_ESCAPE) { PostQuitMessage(0); return 0; } } break; case WM_CREATE: { hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, WC_EDIT, L"", WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, 10, 25, 350, 280, hWin, NULL, GetModuleHandle(NULL), NULL); return 0; } break; case WM_SIZE: { MoveWindow(hEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); return 0; } break; default: break; } return DefWindowProc(hWnd, Msg, wParam, lParam); }
-
Wenn du hWin als Parent benutzt, kann das nicht klappen, weder mit L"EDIT" noch mit WC_EDIT.
-
Ah danke^^
Ich wollte eigentlich eine Art Container machen dem ich die beiden Editfelder unterordnen kann deswegen das hWin .. Hab ich wohl vergessen wieder zu tauschen.