Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0300: Insert-Key-Status einer RTB ändern

 von 

Beschreibung 

Die RichTextBox bietet keine direkte Möglichkeit ihren Insert-Key-Status abzufragen oder gar zu ändern. Trotzdem ist es über das Senden einer knappen Nachricht mittels SendMessage machbar diesen zu ändern. Da defaultmäßig der Status nicht aktiviert ist, muß hier mitgezählt werden. Zu beachten ist, daß der Zustand natürlich nach wie vor auch über die Tastatur geändert werden kann. Daher sollte dies entsprechend im Key-Down-Ereignis berücksichtigt werden.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

SendMessageA (SendMessage)

Download:

Download des Beispielprojektes [2,58 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
' Die Komponente 'Microsoft Rich Textbox Control 6.0 (RICHTX32.OCX)' wird benötigt.

'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: RichTextBox "RichTextBox1"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label1"

Option Explicit

Private Declare Function SendMessage Lib "user32" Alias _
        "SendMessageA" (ByVal hwnd As Long, ByVal wMsg _
        As Long, ByVal wParam As Long, lParam As Long) _
        As Long

Const VK_INSERT = &H2D
Const WM_KEYDOWN = &H100
Const WM_KEYUP = &H101

Private Sub Form_Load()
  Label1.Caption = "Einfügen"
  Command1.Caption = "Insert Status wechseln"
End Sub

Private Sub Command1_Click()
  Static IState As Boolean
  
    Call SendMessage(RichTextBox1.hwnd, WM_KEYDOWN, ByVal _
                     VK_INSERT, ByVal &H510001)
    Call SendMessage(RichTextBox1.hwnd, WM_KEYUP, ByVal _
                     VK_INSERT, ByVal &HC0510001)
      
    IState = Not IState
    
    Label1.Caption = IIf(IState, "Überschreiben", "Einfügen")
    RichTextBox1.SetFocus
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 1 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Mike am 17.02.2005 um 08:04

Hallo Miteinander,

ich möchte auch Tatatureingaben wie A-Z oder 0-9 über eine Softtastatur eingeben können, mit der KeyCodeConstants z.B. vbKeyA funktioniert es nicht ?? - Backspace z.B. geht einwandfrei !

Hat jemand ne Ahnung warum das ??

Gruß Mike