Полезно за вас: Речник | Игри | Новини | Фирми | Рецепти | Обяви
Начало на реферати

Входно изходен интерфейс. Работа с клавиатура и мишка


Информационни технологии | 2009-12-04 | 80 сваляния

15 Входно/изходен интерфейс. Работа с клавиатура и мишка. Преобразуване съобщенията от клавиатура. Каретка. Поддържащи класове в MFC среда. Прозорци и събития, произхождащи от клавиатура и мишка.


  1. Клавиатура

При инсталация на Windows се променя клавиатурният драйвер за DOS.

case WM_KEYDOWN :

switch (wParam){

case VK_HOME: ..... ; //виртуален код на Home

break;

case VK_END : ... ; //виртуален код на END

break;

Натискане на клавиш поражда съобщение или група от съобщения, които се отлагат в опашката на фокусираният прозорец. Натискането на клавиш генерира съобщемие, отпускането на клавиш друго съобщение, комбинация Alt + клавиш също поражда съобщение.

case WM_KEYDOWN :

switch (wParam){

case VK_xxxx: SendMessage(hwnd, message,wParam,lParam);

break;

WM_KEYDOWN виртуален код на а

WM_CHAR ASCII код на а

WM_KEYUP виртуален код на а

Когато се извлече WM_KEYDOWN от опашката .. ще char. Тогава фрагментът обработващ клавиатура може да се промени по следният начин:

case WM_CHAR :

switch(wParam):

{case 'b': ........; // backspace

break;

case 'n' : ........; // буква n

break;

default: ..........

Клавиатура в 32 битова среда (допълнения):

Съобщенията се пренасочват към помощният фокус прозорец.

Промяна на фокус :WM_SETFOCUS, WM_KILLFOKUS и съответно: ON_WM_SETFOCUS, ON_WM_KILLFOKUS в картата на съобщенията.

pOldWnd указател на прозорец който до сега е имал фокуса.

void CMainWindow::OnSetFocus( CWnd* pOldWnd){}

Същото е и при OnKillFocus той ще има за параметър новия прозорец, той ще получи фокус. Това важи само за прозорци, които се намират в един и същи thread.

  1. Каретка.

Това е тази чертичка или правоъгълниче, което показва къде ще се изпише буквата. Тя трябва да се управлява от нас.

CWnd има 7 ф-ииза работа с каретка:

CreateCaret създава я от битмап

GetCaretPos

SetCaretPos

ShowCaret

HideCaret

  1. Мишка.

  • При движение на мишката WM_MOUSEMOVE . Съобщенията от мишкатасе отлагат в опашката на прозореца над която е тя, а не на фокусирания.

- При натиснат бутон : WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK

Как можем да определим кога курсор влиза и излиза от рамката на прозорец:

влизането : в опашка се отлага WM_MOUSEMOVE.В windows 98 се появи и интересна ф-ия ::TrackMouseEvent() (за да проверим можем ли да я използваме:#define _WIN32_WINNT 0x0400 ).С тази ф-ия можем да укажем приложението ( с параметър HWND) да получава съобщния WM_MOUSELEAVE и WM_MOUSEHOVER.С Track_Mouse.Exent() можем да се регистрираме не искаме да получава и информация когато мишката напусне нашият прозорец и когато мишката остава неподвижна за да направим това нещо правим #define.WM_MOUSELEAVE и WM_MOUSEHOVER нямат привързване към функция т.е. трябва да предефинираме картата на съобщенията.

Още едно съобщение свързано с движението на командата MOUSEWILL

Прихващане на мишка:

CWnd::SetCapture()

::ReleaseCapture()

курсор на мишка

1.Създаване на курсор чрез WNDCLASS :

CString strWndClass = AfxRegisterWndClass(,AfxGetApp() LoadStandartCursor( IDC_CROSS),..); //в констр. на CMainWindow

..

Create( strWndClass,); // в CFrameWnd::Create() при създаване на прозореца рамка.

2. С API ф-ия ::SetCursor(m_hCursor);

Входно изходен интерфейс. Работа с клавиатура и мишка

Добави своя коментар:



Тагове от реферата: , , ,


Подобни материали


Графичен вход на графичната с-ма Информационни технологии | 2010-11-19 | 49 прочитания
Функция scanf Информационни технологии | 2010-11-19 | 98 прочитания
Форматиране на дискети Информационни технологии | 2010-11-19 | 169 прочитания
Автоматизирано проектиране на индивидуални технологични процеси Информационни технологии | 2010-11-19 | 41 прочитания
ПРИМИТИВИ ЗА УПРАВЛЕНИЕ НА ПРОЦЕСИ1 Информационни технологии | 2010-11-19 | 32 прочитания
Замъглявания Информационни технологии | 2010-11-19 | 45 прочитания
Р-фазен еднополупериоден ТИ с активен товар. Еднофазен двуполупериоден (мостов) ТИ с ативен товар Информационни технологии | 2010-11-19 | 190 прочитания
Двумерни ГС-ми Информационни технологии | 2010-11-19 | 35 прочитания
Програмни продукти за офиса Офис пакети. Тенденции в развитието им Информационни технологии | 2010-11-19 | 133 прочитания
Създаване на графичен отчет (диаграма) Информационни технологии | 2010-11-19 | 126 прочитания