The Keyboard - PowerPoint PPT Presentation

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

play fullscreen
1 / 21
Download Presentation
The Keyboard
363 Views
Download Presentation

The Keyboard

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. The Keyboard Jim Fawcett CSE778 – Advanced Windows Programmingderived from a presentation by Yi-Yang Huang & Jayashree Venkatesh

  2. 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.

  3. 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

  4. 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

  5. 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)

  6. Keys Down and Keys Up • Keystroke event handlers in your form class: Event Method Delegate Argument --------------------------------------------------------------- KeyDown OnKeyDown KeyEventHandler KeyEventArgs KeyUp OnKeyUp KeyEventHandler KeyEventArgs

  7. 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) { … }

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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 }

  14. 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

  15. 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

  16. Invoking the Win32 API • Platform Invocation Services ScrollWindow: 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);

  17. 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

  18. 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);

  19. 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();

  20. Handling Focus protected override void OnGotFocus (EventArgs ea) { Base.OnGotFocus(ea); … } protected override void OnLostFocus (EventArgs ea) { Base.OnLostFocus(ea); … }

  21. End of Presentation