Лабораторная работа: Обчислення координат курсору миші при переміщенні
Міністерство освіти і науки України
Житомирський державний технологічний університет
Лабораторна робота №6
з курсу «Системне програмування»
на тему: «Миша»
м. Житомир
2011 р.
Зміст
Завдання. 3
Хід роботи. 4
1. Виведення координат миші у вікні. 4
2. Відстань між двома точками у вікні. 4
Програмний код. 5
Висновок. 10
Завдання
1.Вивести координати миші у вікні
2. Знайти відстань між двома точками у вікні
3. Знайти швидкість руху миші на проміжку
Хід роботи
Для виконання цієї лабораторної роботи, було опрацьовано теоретичний матеріал поданий в додатках до лабораторної роботи.
1. Виведення координат миші у вікні
Для того щоб визначити координати миші, необхідно обробити повідомлення WM_MOUSEMOVE, яке приходить кожний раз, коли виконується рух миші при активному вікні, в рамках вікна. Параметрами цього повідомлення є координати миші.
Обробляючи це повідомлення, ми формуємо текстовий рядок наступним чином:
X = LOWORD(lParam);
Y = HIWORD(lParam);
wsprintf(str, “ X = %d Y = %d “, x,y );
2. Відстань між двома точками у вікні
Необхідно зафіксувати дві точки. Нехай це будуть точки в яких користувач натисне ліву а потім праву кнопку миші.
Коли виконується натискання лівої або правої кнопки миші, ми отримуємо повідомлення:
WM_LBUTTONDOWN або WM_RBUTTONDOWN
Разом з цими повідомленнями передаються координати миші.
X = LOWORD(lParam);
Y = HIWORD(lParam);
Це координати в яких було виконане натискання.
Нехай ліва кнопка миші була натиснута в координатах (X1,Y1) а права в координатах (X2,Y2). Відстань між двома точками отримуємо за виразом:
S = sqrt( ( X2 - X1 ) * ( X2 - X1 ) + ( Y2 - Y1 ) * ( Y2 - Y1 ) );
Для визначення швидкості руху миші потрібно знати час руху на проміжку.
Для визначення часу, потрібно зафіксувати час при натисканні лівої кнопки миші, а потім час при натисканні правої кнопки миші.
--> ЧИТАТЬ ПОЛНОСТЬЮ <--