the keyboard l.
Skip this Video
Loading SlideShow in 5 Seconds..
The Keyboard PowerPoint Presentation
Download Presentation
The Keyboard

Loading in 2 Seconds...

play fullscreen
1 / 21

The Keyboard - PowerPoint PPT Presentation

  • Uploaded on

The Keyboard. Jim Fawcett CSE778 – Advanced Windows Programming derived from a presentation by Yi-Yang Huang & Jayashree Venkatesh. Ignoring the keyboard. Microsoft windows and windows forms class handle many keyboard functions themselves. Ignore keystrokes in menu selection.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'The Keyboard' - omer

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
the keyboard

The Keyboard

Jim Fawcett

CSE778 – Advanced Windows Programmingderived from a presentation by

Yi-Yang Huang & Jayashree Venkatesh

ignoring the keyboard
Ignoring the keyboard
  • Microsoft windows and windows forms class handle many keyboard functions themselves.
    • Ignore keystrokes in menu selection.
    • Windows forms programs define keyboard accelerators to invoke common menu items.
    • Dialog boxes also have a keyboard interface, but programs need not monitor the keyboard when a dialog box is active.
who s got the focus
Who’s got the focus?
  • A particular keystroke has only a single destination, which is of type Control or a descendant of Control, such as Form.
    • The object that has input focus receives a keystroke event. A form has input focus when it is the active form.
    • Active form is usually the topmost form on the desktop.
    • Active form is available from the only static property implemented by Form.
      • Type : Form Property : ActiveForm Accessibility : get
A form can attempt to activate itself by calling void Activate().
  • When a form changes to or from the Activated state it gets these events:

Event Method Delegate Argument


Activated OnActivated EventHandler EventArgs

Deactivate OnDeactivate EventHandler EventArgs

keyboards and characters
Keyboards and Characters
  • Keyboard is:
    • A collection of distinct physical keys
    • A means of generating character codes (Unicode).
  • Four groups of keys
    • Toggle keys (Caps, Num, Scroll locks, Insert)
    • Shift keys (Shift, Ctrl, Alt)
    • Noncharacter keys (function, pause, del)
    • Character keys (letter,no,Tab,Backspace,Enter,Esc)
keys down and keys up
Keys Down and Keys Up
  • Keystroke event handlers in your form class:

Event Method Delegate Argument


KeyDown OnKeyDown KeyEventHandler KeyEventArgs

KeyUp OnKeyUp KeyEventHandler KeyEventArgs

event overrides
Event Overrides

protected override void OnKeyDown(KeyEventArgs kea)

{ … }

protected override void OnKeyUp (KeyEventArgs kea)

{ …}

Void MyKeyDownHandler (object objSender, KeyEventsArgs kea)

{ … }

Void MyKeyUpHandler (object objSender, KeyEventsArgs kea)

{ … }

cntl.KeyDown += new KeyEventHandler (MyKeyDownHandler);

cntl.KeyUp += new KeyEventHandler (MyKeyUpHandler);

KeyEventArgs Properties

Type Property Accessibility


Keys KeyCode get

Keys Modifiers get

Keys KeyData get

Bool Shift get

Bool Control get

Bool Alt get

Bool Handled get/set

Int KeyValue get

keys enumeration
Keys Enumeration
  • Keys has lots of members including:
    • Letters

A – 65 , B – 66 , ….., Z – 90

    • Numbers

D0 – 48, D1 – 49 ….D9 – 57

    • Function keys

F1 – 112, F2 – 113….F24 – 135.

    • Keypad operators

Multiply – 106, Add – 107, Subtract – 109, Divide – 111

also in keys enumeration
Also in Keys Enumeration
  • Keypad unused:Separator
  • Keypad cursor movement:Home, Left, End, Insert, Up, Clear, Down, Right, Pageup / Pagedown, Right, Delete
  • ASCII control keys:Back, Tab, Linefeed, Enter Return, Escape, Space
  • Shift keys:Shift, Control , Menu, LShiftkey, Lcontrolkey, LMenu, RShiftkey, RControlkey,RMenu
other special keys
Other Special Keys
  • Modifier keys – shift,control, alt
    • Eg: Shift followed by D
    • Masks are provided for differentiating the keycodes and modifiers.
  • Miscellaneous – Cancel, Pause, Capslock, Printscreen, Numlock, Scroll
  • Mouse buttons – LButton, RButton, Mbutton
still more this is ridiculous
Still More – This is Ridiculous!
  • Browsers and players – browserback, browserforward, browserrefresh, browserstop,…., volumemute, volumedown, volumeup,..,launchapplication1,…,mediastop,…
  • IME (Input method editor) – Finalmode, Kanjamode, IMEconvert,IMEaccept….
  • Microsoft keys – LWin, RWin, Apps
  • Special keys – Select, Print, Execute, Help, Processkey, Attn, Play, Zoom
  • Symbols – Oemsemicolon, Oemplus, Oemcomma, Oemminus, Oemperiod, OemQuestion, Oemtilde, OemPipe, Oemquotes, Oembackslash
testing the modifier keys
Testing the modifier keys
  • State of modifier keys can be obtained using static Control.ModifierKeys property.

Keys keysmod =Control.ModifierKeysIf (keysMod == (Keys.Shift | Keys.Control)){ // Shift and Ctrl and pressed }If (keysMod == Keys.Shift) { // Shift is pressed }If (keysMod == Keys.Control)){ // Ctrl is pressed }

key handling
Key Handling
  • Problems with Capslock
    • Can’t detect current state
  • KeyDown is mostly used for cursor movement, Insert and Delete

KeyPress for Characters

Event Method Delegate Argument


KeyPress OnKeyPress KeyPressEventHandler KeyPressEventArgs

KeyPressEventArgs Properties

Type Property Accessibility


char KeyChar get

bool Handled get/set

Control Characters

Keyboard-Generated Control Characters

Key Control Character


Shift + Ctrl @ 0x0000

Backspace 0x0008

……. See list on page 232

Invoking the Win32 API
  • Platform Invocation Services


Bool Scrollwindow(HWND hwnd, int Xamount, int Yamount, const RECT * lprect.CONST RECT * lpclipRECT);

[StructLayout(LayoutKind,Sequential)]Typedef struct tagRECT{ Long left; Long top; Long right; Long bottom;} RECT;[DllImport(“user32.dll”)]public static extern int ScrollWindow( IntPtr hwnd, int cx, int cy, ref RECT rectScroll, ref RECT rectClip);

Handling input from foreign keyboards
    • Control panel – regional options – general tab – change the language settings – reboot
  • Input focusDetermines which control gets keyboard input.

Control Properties:

Type Property Accessibility


bool CanFocus get

bool ContainsFocus get

Bool Focused get

Control Methods

Bool Focus ( )

Control Events(selection)

Event Method Delegate Argument


GotFocus OnGotFocus EventHandler EventArgs

The Missing Caret

“Cursor” is referred to in Windows as a caret.

Caret caret = new Caret (form);

Caret Properties

Type Property Accessibility


Control Control get

Size Size get/set

Point Position get/set

Bool Visibility get/set

size of Caret : Caret.Size = new Size( 2, Font.height);

Caret Methods :

Void Hide();

Void Show();

Void Dispose();

handling focus
Handling Focus

protected override void OnGotFocus (EventArgs ea)




protected override void OnLostFocus (EventArgs ea)