Frage zu editboxen
-
Hi Leute! Ich arbeite grade mit ner mehrzeiligen Editbox. Jetz hab ich folgendes problem, wenn ich mein Hauptfenster größer machen will, will ich, dass die Editbox auch größer wird. Das realisiere ich bisher so:
case WM_SIZE: { GetClientRect(hWnd, &EditRect); EditRect.bottom -=5; EditRect.right -=5; SendDlgItemMessage(hWnd, IDC_TEXT, EM_SETRECT, 0, (LPARAM)(LONG) &EditRect); }break;
allerdings änbdert er dann nicht die größe des aussehens der Editbox, sondern nur die größe, in den ich schreiben kann. (DIe Visuelle Grösse bleibt gleich)
am besten ich lad mal ne version hoch, damit ihrs sehen könnt... link gibts später...
Vielleicht hat ja jemand ne idee...mfg
Hier ist der Link: *klick**klick*
[ Dieser Beitrag wurde am 11.05.2003 um 11:55 Uhr von mrchat editiert. ]
-
Guck dir mal SetWindowPos(); in der MSDN an.
-
k. allerdings hab ich das ding als dialogbox in vc++ gemacht-> ich hab das Handle davon net.. oder krieg ich das irgendwie raus?? wäre natü+rlich cool
dann würde es nämlich klappen
mfg
-
GetDlgItem
Verschoben nach WinAPI.
-
thx...
getestet -> geht immer noch ned :-(((
hilfeeee
mfg
-
Zeig Code.
-
hab ich net hier.... habsch aufm laptop und der is oben...
im mom bin ich zu faul hoch zu laufen :palso wenn ich wieder oben bin, dann werd ich mir ne diskette schnappen und den code dann posten
bis dann
-
hey, dein Privatleben hat hier nichts zu suchen.
-
Fauler Sack, du
:p
-
Original erstellt von dEUs:
Fauler Sack, du:p
jepp ich weiß..
hier der code:
#include <windows.h> #include <windowsx.h> #include <stdio.h> #include <stdlib.h> #include "resource.h" RECT EditRect; HINSTANCE g_hInstance; BOOL CALLBACK DlgProcInfo(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { switch(Msg) { case WM_CREATE: { }break; case WM_COMMAND: { switch(LOWORD(wParam)) { case IDCLOSE: { SendMessage(hWnd, WM_CLOSE, 0, 0); }break; } }break; case WM_CLOSE: { EndDialog(hWnd, FALSE); }break; } return FALSE; } BOOL CALLBACK DlgProcMain(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { switch(Msg) { case WM_CREATE: { GetClientRect(hWnd, &EditRect); EditRect.bottom -=5; EditRect.right -=5; SendDlgItemMessage(hWnd, IDC_TEXT, EM_SETRECT, 0, (LPARAM)(LONG) &EditRect); HWND eb_hWnd=GetDlgItem(hWnd, IDC_TEXT); SetWindowPos(eb_hWnd, HWND_TOP, 0, 0, 10, 10, SWP_SHOWWINDOW); }break; case WM_COMMAND: { switch(LOWORD(wParam)) { case IDC_FILE_EXIT: { SendMessage(hWnd, WM_CLOSE, 0, 0); }break; case IDC_FILE_NEW: case IDC_FILE_SAVE: case IDC_FILE_LOAD: case IDC_FILE_PRINT: { MessageBox(hWnd, "Diese Funktion steht momentan nicht zur Verfügung.", "Hinweis", MB_ICONINFORMATION); }break; case IDC_HELP_INFO: { DialogBox(g_hInstance,MAKEINTRESOURCE(IDD_INFO), hWnd, DlgProcInfo); }break; } }break; case WM_CLOSE: { EndDialog(hWnd, FALSE); }break; case WM_SIZE: { GetClientRect(hWnd, &EditRect); EditRect.bottom -=5; //Wegen Scrollbalken EditRect.right -=5; //wegen Scrollbalken SendDlgItemMessage(hWnd, IDC_TEXT, EM_SETRECT, 0, (LPARAM)(LONG) &EditRect); RECT test; SendDlgItemMessage(hWnd, IDC_TEXT, EM_GETRECT, 0, (LPARAM)(LONG)&test); //char buffer[256]; //sprintf(buffer, "b:%d, l:%d, r:%d, t:%d", test.bottom, test.left, test.right, test.top); //MessageBox(hWnd, buffer, "", NULL); }break; } return FALSE; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { g_hInstance = hInstance; DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DlgProcMain); return FALSE; }
viel spaß dabei :p
mfg
-
Eigentlich solltest du den Code posten, mit dem es nicht funktioniert hat.
Naja, egal schreib mal folgendes in den WM_SIZE-Zweig:GetClientRect(hWnd, &EditRect); EditRect.bottom -=5; //Wegen Scrollbalken EditRect.right -=5; //wegen Scrollbalken SetWindowPos(GetDlgItem(hWnd, IDC_TEXT), 0, 0, 0, EditRect.right-EditRect.left, EditRect.bottom-EditRect-top, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
-
ich hab auch beim coden nen kleinen fehler gehabt.. sorry *zwinker* aber in deiner anweisung sind auch nen paar fehler drinne...
ich kompiliers grad ma.. moment.. (nach verbesserung deiner kleinen fehler)
und... ja es gehtthx für die hilfe