Embed
Email

The Keyboard

Document Sample
The Keyboard
Shared by: HC111129191710
Categories
Tags
Stats
views:
378
posted:
11/29/2011
language:
English
pages:
21
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.

– 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?

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

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

Keystroke event handlers in your form class:



Event Method Delegate Argument

---------------------------------------------------------------

KeyDown OnKeyDown KeyEventHandler KeyEventArgs

KeyUp OnKeyUp KeyEventHandler KeyEventArgs

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

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

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!

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

State of modifier keys can be obtained using

static Control.ModifierKeys property.



Keys keysmod =Control.ModifierKeys



If (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

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

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

);

Handling input from foreign keyboards

– Control panel – regional options – general tab –

change the language settings – reboot



Input focus

Determines 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

protected override void OnGotFocus (EventArgs ea)

{

Base.OnGotFocus(ea);



}



protected override void OnLostFocus (EventArgs ea)

{

Base.OnLostFocus(ea);



}

End of Presentation


Related docs
Other docs by HC111129191710
Employer and agency agreement:
Views: 1  |  Downloads: 0
ESL Textbook List 2006 2007
Views: 3  |  Downloads: 0
newsletter
Views: 0  |  Downloads: 0
CHAPTER I
Views: 1  |  Downloads: 0
List of schools
Views: 9  |  Downloads: 0
Champions
Views: 0  |  Downloads: 0
BIBLIOGRAPHY ENTRIES FOR
Views: 0  |  Downloads: 0
Meat QuoteTurkey Roll
Views: 0  |  Downloads: 0
Government of Karnataka
Views: 8  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!