VB 5/6-Tipp 0300: Insert-Key-Status einer RTB ändern
von ActiveVB
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: | Verwendete API-Aufrufe: | Download: |
'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-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
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