Als Ergänzung zu unserem Tipp Überschreibmodus in Textboxen möchten wir Ihnen nachfolgend zeigen, wie man den Überschreibmodus durch Verändern der Cursorbreite sofort erkenntlich machen kann. Auch hierfür stellt uns Windows wieder einmal eine entsprechende API-Funktion zur Verfügung. ' zunächst die benötigten API-Deklarationen Private Declare Function CreateCaret Lib "user32" ( _ ByVal hwnd As Long, _ ByVal hBitmap As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long) As Long Private Declare Function ShowCaret Lib "user32" ( _ ByVal hwnd As Long) As Long Ändern der Breite des Eingabecursors ' Ändert die Größe der Einfügemarke ' hWnd = hWnd der Textbox ' nWidth = neue Breite in Pixel ' nHeight = neue Höhe in Pixel Public Sub SetNewCaret(hWnd As Long, ByVal nWidth As Long, _ ByVal nHeight As Long) CreateCaret hWnd, 0, nWidth, nHeight ShowCaret hwnd End Sub Beispiel ' Umschalten zwischen Einfüge- und Überschreibmodus ' und Ändern der Cursorbreite Private Sub Text1_KeyDown(KeyCode As Integer, _ Shift As Integer) ' Nur wenn "Einfg"-Taste gedrückt wurde If KeyCode = vbKeyInsert Then Text1.Tag = Not CBool(Text1.Tag) If CBool(Text1.Tag) Then ' Cursor breiter darstellen SetNewCaret Text1.hWnd, 5, 13 Else ' Cursor normal darstellen SetNewCaret Text1.hWnd, 1, 13 End If End If End Sub |