edit control selbst zeichnen



  • Hallo, ich will ein Edit-Control selbst zeichnen, momentan mach ich das so:

    case WM_CTLCOLOREDIT:
            {
            	RECT	rc;
                HGDIOBJ	old_brush	= NULL;
                HGDIOBJ	old_pen		= NULL;
    
            	GetWindowRect((HWND)lParam, &rc);
    
            	SetBkMode((HDC)wParam, TRANSPARENT);         // Texthintergrund auf transparent setzen
                SetTextColor((HDC)wParam, RGB(255,255,255)); // Textfarbe auf Weiss setzen
    
                SelectObject((HDC)wParam, myfont);
                old_brush	= SelectObject((HDC)wParam, CreateSolidBrush(RGB(84, 65, 171)));
                old_pen		= SelectObject((HDC)wParam, p_bt_border);
    
                Rectangle((HDC)wParam, 0, 0, rc.right - rc.left, rc.bottom - rc.top);
    
                DeleteObject(SelectObject((HDC)wParam, old_brush));
                SelectObject((HDC)wParam, old_pen);
    
                return (LRESULT)GetStockObject(NULL_BRUSH);
            }
            break;
    

    Das funktioniert zwar soweit aber ich hab noch 2 Probleme:

    1. Wenn ich den Text im edit-control markiere wird er mit der Standardschrift dargestellt!

    2. Wird die markierung wieder aufgehoben kommt es vor dass diese Teile des Textes überhaup nicht mehr dargestellt werden!

    Wie kann ich dagegen machen?


Anmelden zum Antworten