Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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


мужики срочно отпишитесь!!!!! пожалуйста!!((((((((
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2010, 19:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Управление курсором мыши с помощью стрелок клавиатуры (C++):

Управление курсором в консоли - C++
Всем привет. Интересует вопрос: можно ли управлять курсором в консоли, то есть управлять положением вывода или ввода информации, с помощью...

Программа, управляющая курсором мыши - C++
Здравствуйте. Хочу написать на dev с++ программу, которая будет искать на экране определенное слово, кнопку или картинку, перетаскивать на...

Реализовать круговые движения курсором мыши - C++
Я новичек в с++. Хочу написать простую программу, которая при нажатии на кнопку (которую задам я в программе) мышь начинала делать круговые...

Захват текста под курсором мыши - C++
Здравствуйте. Возникла такая проблема: надо в текстовом редакторе (например TMemo) получить слово на которое указывает курсор мыши, затем...

Объект поворачивается вслед за курсором мыши - C++
Должно получиться что-то типа "лицо, следящее за мышью". Бочку сделал, нашел в нете похожее, но дико запутанное, ничерта не...

Разработка меню, управление курсором в меню - C++
Задание: Написать программу для опроса нажатых клавиш, определения вида нажатой клавиши и передачи управления на соответствующую метку. При...

29
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
28.04.2010, 21:06 #16
какой у вас компилятор?)
neske, я пару месяцев работал в BCPP 3.1 и вот только неделю-две пишу на VS C++ консольные приложения, так что не вникал в эти ф-ции, сейчас поищу...
1
sJIaBa
1 / 1 / 0
Регистрация: 27.04.2010
Сообщений: 15
28.04.2010, 21:09  [ТС] #17
борланд 3.1
0
kravam
быдлокодер
1702 / 889 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
28.04.2010, 21:19 #18
Срочняком заходишь в папку с инклудами, ищешь, в каком именно файле прописан прототип SETCURSORPOS () и подключаешь этот файл к проекту.
0
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
28.04.2010, 21:24 #19
нет там такого, и вообще чтоб мышь подключить нужна асм вставка, сейчас сделаю
1
kravam
быдлокодер
1702 / 889 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
28.04.2010, 21:36 #20
Зачем такая IDE, которая не распознаёт SETCURSORPOS()?
0
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
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;
}
1
kravam
быдлокодер
1702 / 889 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
28.04.2010, 21:58 #22
...Ещё и под ДОС...
Ну, добре.
Предлагаю ТС идти в ногу со временем и поставить IDE, распознающую SETCURSORPOS ().
0
sJIaBa
1 / 1 / 0
Регистрация: 27.04.2010
Сообщений: 15
28.04.2010, 22:05  [ТС] #23
я бы поставил. тольк у нас в универе препод !!!.....чисто тольк эту бороду поставил и не че новей ставить не хочет(
0
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
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;
}
0
neske
1503 / 870 / 84
Регистрация: 26.03.2010
Сообщений: 2,985
28.04.2010, 22:16 #25
Ребят, хотел узнать. Вот код, пост #5, как из него сделать .exe файл?
0
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
28.04.2010, 22:24 #26
а вообще в папке с проектом обычно создается .ехе файл при запуске программы в компиляторе)
2
Вложения
Тип файла: rar Cyberforum.rar (7.6 Кб, 53 просмотров)
kravam
быдлокодер
1702 / 889 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
28.04.2010, 22:25 #27
Создайте файл *с или *сpp с таким содержанием, откройте в какой-нибудь среде (рекомендую DEV C++ 4.9.9.2), скомпилируете и получите работоспособный экзешник
0
sJIaBa
1 / 1 / 0
Регистрация: 27.04.2010
Сообщений: 15
28.04.2010, 22:31  [ТС] #28
спасибо=) выручил просто не представляешь как=)

Добавлено через 5 минут
Рассчетно-графические работы
ребят тут еще проблема возникла((((но эт прога другая((((((
0
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
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;
}
1
sJIaBa
1 / 1 / 0
Регистрация: 27.04.2010
Сообщений: 15
29.04.2010, 00:14  [ТС] #30
Vorona, спасиб большое=)=)=)
не перевелись еще добрые люди
блин нереально выручил
0
29.04.2010, 00:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2010, 00:14
Привет! Вот еще темы с ответами:

Управление вводом с клавиатуры в С++ - C++
Добрый день, подскажите как добиться вот этого результата на С++ вот пример: нажимаю я клавишу &quot;1&quot;, по нажатию выполняется ++a, а как ...

Драйвер клавиатуры и мыши. - C++
Здравствуйте! Может кто-нибудь дать исходники на драйвер клавиатуры и мыши с подробным описанием строк. Или любой небольшой исходник...

Hook клавиатуры и мыши - C++
Мне нужно сделать hook клавиатуры и мыши в vs 2010, но у меня проблемы с фантазией, и я не совсем понимаю как это сделать) помогите плз)

Управление состоянием кнопки с помощью таймера - C++
Ситуация: 1. при нажатии на кнопку, она становится красной, через 10 сек приходит в исходное состояние; 2. при нажатии на кнопку, она...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

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