Bitmap in Edit
-
Und wie bekomm ich dann das Bild so schön hineingezeichnet wie bei einem normalen Edit?
-
*kopfschüttel* Na, du zeichnest es eben hinein.
-
Warum tuts dann net?
// subclassed text field LRESULT CALLBACK ChatTextProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { // private PAINTSTRUCT ps; HBRUSH hBrush; HGDIOBJ hOldObj; switch (message){ case WM_PAINT: HDC hDC = BeginPaint(hWnd, &ps); hBrush = CreatePatternBrush(hBmpTest); hOldObj = SelectObject(hDC, hBrush); DeleteObject(SelectObject(hDC, hOldObj)); EndPaint(hWnd, &ps); break; } return CallWindowProc ((WNDPROC) OldChatTextProc, hWnd, message, wParam, lParam); }
-
Was soll das denn werden? Da kann doch nix kommen.
-
FillRect
-
Original erstellt von <axa>:
Was soll das denn werden? Da kann doch nix kommen.Dann wärst du vielleicht so freundlich und würdest mich bitte berichten?!
-
Hast du nicht vielleicht ein PatBlt() vergessen? Und warum blittest du das Bitmap nicht ganz normal in das HDC?
-
achso, sorry
-
Hä? Wieso entschuldigst du dich?
-
hatte nix besseres zu tun
-
Es wird aber jetzt der Text übermalt der drin steht!
-
Dann versuch es mit WM_ERASEBKGND. Vor allem solltest du danach die DefWindowProc aufrufen, da darin sicherlich der Text reingemalt wird.
[ Dieser Beitrag wurde am 16.02.2003 um 19:31 Uhr von WebFritzi editiert. ]
-
Wenn ichs bei EraseBGrnd reinschreib dann passiert garnix!
Und wieso ist eigentlich bei Multiline Edits, bei denen man _NUR_ die Hintergrundfarbe ändert der Text so verdammt verschmiert?danke!
cu para
-
Warum baust du dir das Ding nicht einfach komplett selbst. Ist bestimmt total interessant.
-
Original erstellt von <f>:
Warum baust du dir das Ding nicht einfach komplett selbst. Ist bestimmt total interessant.ja klar, bestimmt. Hab nur leider was anderes zu tun und dachte mir halt jetzt mach doch einfach als Hintergrund n Bitmap, aber neiiiin!
-
Für WebFritzi gilt: Runtime Error 6D at 417A:32CF: Incompetent User.
-
Ich hab's!!! Ohne Subclassing geht's. Und zwar so:
LRESULT CALLBACK AppWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { static HDC hdc; static HBRUSH hEditBrush, hOrgBrush; static HBITMAP hBrushBmp; switch(iMsg) { case WM_CREATE: // Das Bitmap laden hBrushBmp = LoadBitmap(HInstance, MAKEINTRESOURCE(ID_BMP_BRUSH)); // Den Brush erstellen und ins Edit-DC hauen hEditBrush = CreatePatternBrush(hBrushBmp); hdc = GetDC(hEdit); hOrgBrush = (HBRUSH)SelectObject(hdc, hEditBrush); ReleaseDC(hEdit, hdc); break; case WM_CTLCOLOREDIT: SetBkMode((HDC)wParam, TRANSPARENT); return (LRESULT)hEditBrush; case WM_DESTROY: hdc = GetDC(hEdit); SelectObject(hdc, hOrgBrush); ReleaseDC(hEdit, hdc); DeleteObject(hEditBrush); PostQuitMessage(0); break; } return DefWindowProc(hwnd, iMsg, wParam, lParam); }
[ Dieser Beitrag wurde am 16.02.2003 um 20:02 Uhr von WebFritzi editiert. ]
-
WM_DESTROY
-
Original erstellt von JSFreak:
Für WebFritzi gilt: Runtime Error 6D at 417A:32CF: Incompetent User.Für dich gilt: AccessViolation at s876degxlß: Incompetent Poster.
-
achso, hat sich erledigt, hab's falsch verstanden.