Bitmap in Edit
-
Eigentlich schon
BTW, warum nimmst du nicht einfach CreateCompatibleBitmap(hDC);
-
Original erstellt von flenders:
Eigentlich schon
BTW, warum nimmst du nicht einfach CreateCompatibleBitmap(hDC);Hä? CreateCompatibleBitmap verlangt bei mir 3 Parameter, oder hab ich dich falsch verstanden?
-
Du kannst auch nur den ersten angeben: http://msdn.microsoft.com/library/en-us/gdi/bitmaps_1cxc.asp
-
Also es ist jetzt so.
Zeichne ich den vorher gespeicherten DC nicht wieder zurück dann wird das Bitmap angezeigt. Nur komischerweise plötzlich unter dem Edit. Also es schaut nur unten ein kleines Stück heraus.
Zeichen ich aber das vorher gespeicherte wieder zurück dann ist alles als wäre nichts also scheint es jetzt zu funktionieren.Ich hab halt noch das Problem mit dem Edit:
-------------------- | Hier ist das Edit | -------------------- ******** <= Stück vom Bitmap
Hier mein Quelltext
// edit case WM_CTLCOLOREDIT: // get item dis = (DRAWITEMSTRUCT*)&lParam; if((HWND)lParam==GetDlgItem(hDlg, TXT_PROFILE)){ // save old HGDIOBJ hOldObj1, hOldObj2; HDC hOldDC = CreateCompatibleDC((HDC)wParam); HBITMAP hOldBmp = CreateCompatibleBitmap((HDC)wParam, 50, 50); SelectObject(hOldDC, hOldBmp); BitBlt(hOldDC, 0, 0, 50, 50, (HDC)wParam, 0, 0, SRCCOPY); // blit bitmap HDC hMemDC = CreateCompatibleDC((HDC)wParam); hOldObj2 = SelectObject(hMemDC, hBmpTest); BitBlt((HDC)wParam, 0, 0, 50, 50, hMemDC, 0, 0, SRCCOPY); BitBlt((HDC)wParam, 0, 0, 50, 50, hOldDC, 0, 0, SRCCOPY); // cleanup DeleteObject(SelectObject(hMemDC, hOldObj2)); DeleteDC(hMemDC); DeleteObject(SelectObject(hOldDC, hOldObj1)); DeleteObject(hOldBmp); DeleteDC(hOldDC); // break; return 0; }; // all normal statics SetBkMode((HDC)wParam,TRANSPARENT); return (long)CreateSolidBrush(RGB(218, 218, 255));
Man! Wo ist da der Haken?!?!?!
danke!
cu para
-
dis = (DRAWITEMSTRUCT*)&lParam;
-
CreatePatternBrush();
WM_CTLCOLOREDIT
SetBkMode();
-
Original erstellt von <Gregor>:
dis = (DRAWITEMSTRUCT)&lParam;*
Was willst du damit sagen???
Ich brauch dir struct weiterunten im CodeCreatePatternBrush();
WM_CTLCOLOREDIT
SetBkMode();Wäre evtl. ein wenig Text zusätzlich möglich, weil ich kann mir nichts darunter vorstellen.
Ähem. Das hätte sich dann wohl erledigt.
DANKE DANKE DANKE!
Funktioniert einwandfrei!danke!
cu para
-
Achja. Kann es sein, dass es nicht bei RichEdit funktioniert???
-
lol, bei WM_CTLCOLOREDIT ist lparam doch garkeine DRAWITEMSTRUCT*, und wenn ist lparam direkt der Zeiger. Aber zum Glück verwendest du die Struktur garnicht.
-
Jetzt sag nicht nach 2 Seiten, dass du garkein Edit, sondern ein RichEdit hast...
Die Frage von Gregor war schon berechtigt: nimm mal das '&' weg vor lParam.[EDIT] Oh ja. lParam ist ein HWND [/EDIT]
[ Dieser Beitrag wurde am 16.02.2003 um 17:38 Uhr von WebFritzi editiert. ]
-
wParam
Handle to the device context for the edit control window.
lParam
Handle to the edit control.
-
Original erstellt von WebFritzi:
**Jetzt sag nicht nach 2 Seiten, dass du garkein Edit, sondern ein RichEdit hast...
Die Frage von Gregor war schon berechtigt: nimm mal das '&' weg vor lParam.[EDIT] Oh ja. lParam ist ein HWND [/EDIT]
[ Dieser Beitrag wurde am 16.02.2003 um 17:38 Uhr von [qb]WebFritzi** editiert. ][/QB]
Doch das sage ich jetzt.
Sagen wir so ich hab beides.
Und möchte gerne wissen wie es bei dem RichEdit geht.
-
Sendet denn ein Richedit überhaupt so eine Color Message?
-
Original erstellt von <Frage>:
Sendet denn ein Richedit überhaupt so eine Color Message?Gute Frage...
Auserdem funzt es doch noch nicht so gut:
// edit case WM_CTLCOLOREDIT: if((HWND)lParam==GetDlgItem(hDlg, TXT_PROFILE)){ SetBkMode((HDC)wParam,TRANSPARENT); // Texthintergrund auf transparent setzen SetTextColor((HDC)wParam,RGB(0,0,0)); // Textfarbe auf Weiss setzen return (long)CreatePatternBrush(hBmpTest); }
Also ich schreibe jetzt in die Box. Funzt einwandfrei. Dahinter steht dann auch mein Bitmap. Nur wenn ich jetzt mit Backspace das löschen will oder Entfernen (ist egal) dann bleibt der Text so lange darin stehen, bis er praktisch nicht mehr drinstehen darf, weil alles entfernt wurde. Erst dann verschwindet er.
[ Dieser Beitrag wurde am 16.02.2003 um 17:47 Uhr von paranoiac.org editiert. ]
-
teste es aus (ich glaube nein)
-
Original erstellt von <mal>:
teste es aus (ich glaube nein)Ja mit der Msg von oben gehts net. Aber ne RichEdit sendet doch bestimmt sowas ähnliches...
-
Subclassing?
-
Original erstellt von <class>:
Subclassing?Ich probiers mal schnell
-
Achso, du willst einfach nur eine Bitmap im Text haben z.B. ein Smilie? Das geht doch mit'm Richedit ohne fiese Tricks? Ich dachte du wolltest ein Bitmap als Hintergrund-Bild.
-
Original erstellt von <a>:
Achso, du willst einfach nur eine Bitmap im Text haben z.B. ein Smilie? Das geht doch mit'm Richedit ohne fiese Tricks? Ich dachte du wolltest ein Bitmap als Hintergrund-Bild.Will ich auch. Ich will einen Hintergrund
Nix Smilie oder so wie bei ICQ