Announcement

Collapse
No announcement yet.

Wie verwende ich WM_CHAR ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie verwende ich WM_CHAR ?

    Hi, <br>Ich will an eine Anwendung die Message WM_CHAR schicken. Ich weiß aber nicht welche Parameter ich mitgeben muss. <br><br>PostMessage(hWin, WM_CHAR, ?, ?);<br><br>In der Hilfe stehen zwar irgendwelche Zahlen, ich verstehe aber nur Bahnhof. (p.s. ich brauch das um die Taste "Q" zu simulieren)<br>

  • #2
    <pre>
    Hallo,
    als dritten Parameter musst Du nur den ASSCII-Wert des Buchstabens angeben, wie das mit dem vierten Parameter ist, weiß ich nicht:
    PostMessage(Edit1->Handle, WM_CHAR, 81, NULL);
    Gruß Moritz
    </pre&gt

    Comment


    • #3
      Aus der alten Hilfe von Borland C++3.1:

      WM_CHAR

      Diese Botschaft geht aus der Übersetzung einer WM_KEYUP- oder WM_KEYDOWN-Botschaft hervor. Sie enthält den Wert der gedrückten oder losgelassenen Taste.

      Parameter Beschreibung

      wParam Enthält den Wert der Taste.
      lParam Enthält Wiederholungszähler, Scan-Code, Code für den Tastaturzustand, vorhergehenden Tastenstatus und Kontextcode entsprechend der nachfolgenden Liste:

      Bit Wert

      0-15 (niederwertiges WORD) Wiederholungszähler (dessen Wert ergibt sich aus der Zeit, während der der Anwender die Taste gedrückt hält).

      16-23 (niederes Byte des höherwertigen WORD) Scan-Code (OEM-abhängiger Wert).

      24 Hat den Wert 1, wenn eine zusätzliche Taste, z.B. Funktionstaste oder eine Taste des numerischen Tastenblocks verwendet wird.

      25-26 Wird nicht verwendet.

      27-28 Zur internen Verwendung durch Windows.

      29 Kontextcode (1, wenn die Taste ALT gleichzeitig mit der Taste gedrückt wird, sonst 0).

      30 Vorhergehender Tastenstatus (1, wenn die Taste vor Übergabe der Botschaft. gedrückt wurde, 0, wenn die Taste nicht gedrückt wurde).

      31 Tastenzustand (1, wenn die Taste losgelassen, 0, wenn sie gedrückt wird).

      Hinweis

      Da es keine Eins-zu-Eins-Entsprechung zwischen gedrückten Tasten und erzeugten Zeichenbotschaften gibt, ist der Inhalt des höherwertigen WORD des Parameters lParam ohne Bedeutung für die Anwendung. Die Information im höherwertigen WORD dient ausschließlich der WM_KEYUP- oder WM_KEYDOWN
      -Botschaft, die der Übergabe der Zeichenbotschaft vorangeht.
      Bei erweiterten IBM-Tastaturen mit 101 oder 102 Tasten gelten folgende Tasten als zusätzliche: die rechte ALT- und Strg-Taste im Hauptbereich der Tastatur, Einfg, Rück, Pos1, Ende, SeiteAuf,SeiteAb und die Cursor-Tasten im Block zwischen dem Nummernblock und der alphanumerischen Tastatur sowie die Divisions- (/) und die Eingabetaste im Nummernblock. Auch andere Tastaturen unterstützen möglicherweise das Zusatztasten-Bit im Parameter lParam
      Günther

      Comment


      • #4
        Genau das ist mein Problem: In der Hilfe steht z.B. <br><br>
        16-23 (niederes Byte des höherwertigen WORD) Scan-Code (OEM-abhängiger Wert). <br><br>Was heißt das "16-23" ? Kann mit vielleicht jemand ein Beispiel posten ? Aber danke für die Antworten

        Comment


        • #5
          lParam ist ein 32 Bit - WORD. Die einzelnen Bit's sind von 0 bis 31 numeriert. 16-23 heißt also, daß die Bit's 16 bis 23 diesen Scan-Code enthalten. 32 Bit sind auch 4 Bytes. Die ersten 2 Bytes, also Bit 0 bis 15, sind das niederwertige WORD, Bit 16 bis 31 sind das höherwertige WORD, Bit 16 bis 23 sind die ersten 8 Bits davon, also das niedere Byte des höherwertigen WORD
          Günther

          Comment


          • #6
            http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/aboutkeyboardinput.as
            Günther

            Comment


            • #7
              Vielen Dan

              Comment

              Working...
              X