Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 64, средняя оценка - 4.67
sJIaBa
1 / 1 / 0
Регистрация: 27.04.2010
Сообщений: 15
#1

Управление курсором мыши с помощью стрелок клавиатуры - C++

28.04.2010, 19:08. Просмотров 8105. Ответов 29
Метки нет (Все метки)

программу в которой происходит управление курсором мыши с помощью стрелок клавиатуры
при этом курсор мыши соответствует стрелке на нажатой клавише.


мужики срочно отпишитесь!!!!! пожалуйста!!((((((((
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
666 / 528 / 45
Регистрация: 05.03.2010
Сообщений: 1,271
28.04.2010, 21:55     Управление курсором мыши с помощью стрелок клавиатуры #21
это старый Борланд под Дос, все распознает только в другом виде
вот мышь в графическом режиме:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <conio.h>
#include <graphics.h>
//показать / спрятать мышь
void mouse(int m)
{
        int mode;
        if (m==0) mode=2;else mode=m;
        asm{
            mov ax,mode
            int 33h
    }
}
//изменить положение мыши
void mousemove(int xm, int ym)
{
        asm{
            mov ax, 4
            mov cx, xm
            mov dx, ym
            int 33h
    }
}
 
int main()
{
    clrscr();
 
    int step = 10;
    char c = 0;
//подключение графики, автоопределение(DETECT) графического драйвера
    int gdriver = DETECT, gmode, errorcode;
 
    initgraph(&gdriver, &gmode, "");
    errorcode = graphresult();
    if (errorcode != grOk)
    {
        cprintf("Graphics error: %s\n", grapherrormsg(errorcode));
        cprintf("Press any key to halt:");
        getch();
        return 1;
    }//проверка на ошибки
 
    int x = getmaxx()/2, y = getmaxy()/2;
//разместить курсор  в центре экрана
    mousemove(x, y);
    mouse(1);
    while(c != 27){
        c = getch();
        switch(c){
            case 75: if(x>1)mousemove(x-=step, y); break;
            case 77: if(x<639)mousemove(x+=step, y); break;
            case 72: if(y>1)mousemove(x, y-=step); break;
            case 80: if(y<479)mousemove(x, y+=step); break;
        }
    }
    closegraph();
        return 0;
}
kravam
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,394
28.04.2010, 21:58     Управление курсором мыши с помощью стрелок клавиатуры #22
...Ещё и под ДОС...
Ну, добре.
Предлагаю ТС идти в ногу со временем и поставить IDE, распознающую SETCURSORPOS ().
sJIaBa
1 / 1 / 0
Регистрация: 27.04.2010
Сообщений: 15
28.04.2010, 22:05  [ТС]     Управление курсором мыши с помощью стрелок клавиатуры #23
я бы поставил. тольк у нас в универе препод !!!.....чисто тольк эту бороду поставил и не че новей ставить не хочет(
Vorona
Peace 2 all shining faces
666 / 528 / 45
Регистрация: 05.03.2010
Сообщений: 1,271
28.04.2010, 22:08     Управление курсором мыши с помощью стрелок клавиатуры #24
вот на всякий случай остальные ф-ции() для работы с мышью:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// показать/спрятать "мышь"
 void mouse(int m)
{
 int mode;
 if (m==0) mode=2;else mode=m;
 asm{
     mov ax,mode //задание номера функции
     int 33h     //вызов прерывания №33
    }
}
// определение координат  и состояния кнопок "мыши"
void mStatus()
{
 int mbut, mx, my;
 asm{
     mov ax,3h //задание номера функции
     int 33h   //вызов прерывания №33
     mov mx,cx // координата Х
     mov my,dx // координата У
     mov mbut,bx // байт состояния кнопок
    }
  x = mx;
  y = my;
  but = mbut;
}
//перемещение "мыши" в заданную точку Xm,Ym
void mousemove(int xm, int ym)
 {
  asm{
    mov ax, 4
    mov cx, xm
    mov dx, ym
    int 33h
    }
 }
//определение числа нажатий левой кнопки "мыши"
void count()
 {
  if (but==0) nb=0;
  if ((but==1) && (nb==0)) {nbut++;nb=1;}
 }
//определение нахождения "мыши" в заданной области
int mousecoord(int x1,int y1, int x2, int y2)
{
  mStatus();
  if (x>=x1 && x<=x2 && y>=y1 && y<=y2) return 1;
  else return 0;
}
neske
1466 / 833 / 69
Регистрация: 26.03.2010
Сообщений: 2,839
28.04.2010, 22:16     Управление курсором мыши с помощью стрелок клавиатуры #25
Ребят, хотел узнать. Вот код, пост #5, как из него сделать .exe файл?
Vorona
Peace 2 all shining faces
666 / 528 / 45
Регистрация: 05.03.2010
Сообщений: 1,271
28.04.2010, 22:24     Управление курсором мыши с помощью стрелок клавиатуры #26
а вообще в папке с проектом обычно создается .ехе файл при запуске программы в компиляторе)
Вложения
Тип файла: rar Cyberforum.rar (7.6 Кб, 53 просмотров)
kravam
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,394
28.04.2010, 22:25     Управление курсором мыши с помощью стрелок клавиатуры #27
Создайте файл *с или *сpp с таким содержанием, откройте в какой-нибудь среде (рекомендую DEV C++ 4.9.9.2), скомпилируете и получите работоспособный экзешник
sJIaBa
1 / 1 / 0
Регистрация: 27.04.2010
Сообщений: 15
28.04.2010, 22:31  [ТС]     Управление курсором мыши с помощью стрелок клавиатуры #28
спасибо=) выручил просто не представляешь как=)

Добавлено через 5 минут
Рассчетно-графические работы
ребят тут еще проблема возникла((((но эт прога другая((((((
Vorona
Peace 2 all shining faces
666 / 528 / 45
Регистрация: 05.03.2010
Сообщений: 1,271
29.04.2010, 00:10     Управление курсором мыши с помощью стрелок клавиатуры #29
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <conio.h>
#include <graphics.h>
#include <dos.h>
 
void mouse(int m)
{
    int mode;
    if (m==0) mode=2;else mode=m;
    asm{
        mov ax,mode
        int 33h
    }
}
 
void mousemove(int xm, int ym)
{
    asm{
        mov ax, 4
        mov cx, xm
        mov dx, ym
        int 33h
    }
}
 
void chastota(int ch, int i){
    if(i==1){
        mouse(0);
        delay(ch);
        mouse(1);
        delay(ch);
    }
    else {
        mouse(1);
        delay(ch);
        mouse(1);
    }
}
 
int main()
{
    clrscr();
 
    int ch;
    cprintf("Vvedite 4astoty miganiia: ");
    cscanf("%d", &ch);
 
    int step = 10;
    char c = 0;
    int gdriver = DETECT, gmode, errorcode;
 
    initgraph(&gdriver, &gmode, "");
    errorcode = graphresult();
    if (errorcode != grOk)
    {
        cprintf("Graphics error: %s\n", grapherrormsg(errorcode));
        cprintf("Press any key to halt:");
        getch();
        return 1;
    }
    int x = getmaxx()/2, y = getmaxy()/2;
 
    mousemove(x, y);
    mouse(1);
    while(c != 27){
 
        while(!kbhit())
            chastota(ch, 1);
        if(kbhit()){
            c = getch();
            chastota(ch, 0);
        }
 
        switch(c){
            case 75: if(x>1) mousemove(x-=step, y); break;
            case 77: if(x<639) mousemove(x+=step, y); break;
            case 72: if(y>1) mousemove(x, y-=step); break;
            case 80: if(y<479) mousemove(x, y+=step); break;
        }
    }
    closegraph();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2010, 00:14     Управление курсором мыши с помощью стрелок клавиатуры
Еще ссылки по теме:

Управление вводом с клавиатуры в С++ C++
C++ Реализовать круговые движения курсором мыши
C++ Управление состоянием кнопки с помощью таймера
C++ Управление курсором в консоли
C++ DOS. Управление индикаторами клавиатуры

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sJIaBa
1 / 1 / 0
Регистрация: 27.04.2010
Сообщений: 15
29.04.2010, 00:14  [ТС]     Управление курсором мыши с помощью стрелок клавиатуры #30
Vorona, спасиб большое=)=)=)
не перевелись еще добрые люди
блин нереально выручил
Yandex
Объявления
29.04.2010, 00:14     Управление курсором мыши с помощью стрелок клавиатуры
Ответ Создать тему
Опции темы

Текущее время: 01:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru