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

Вызвать функцию из другой функции.Работа с мышью[Из подменю в меню. Консоль] - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу, определяющую сумму элементов массива, находящихся в массиве после первого отрицательного элемента http://www.cyberforum.ru/cpp-beginners/thread801274.html
Создать массив из 20 случайных чисел в диапазоне от -10 до 30. Написать программу, определяющую сумму элементов массива, находящихся в массиве после первого отрицательного элемента.
C++ Библеотека FLTK и граффические классы Народ всем привет короче я читаю книгу Строуструпа Программирование принцыпы и практика использования C++ и короче я дошел до 13 главы там про библеотеку FLTK и граффические классы и после 13 главы упражнения есть которые я вообще не могу решить че делать??? http://www.cyberforum.ru/cpp-beginners/thread801269.html
На основе созданного класса OPERATION, создать класс-потомок OP_SUMMATOR, который производит сложение двух полей C++
Я создал класс OPERATION, который является абстрактной операцией над двумя числами типа int. Непосредственно сама операция выполняется в процедуре execute, которая выводит результат на экран. Помогите на основе созданного класса OPERATION, создать класс-потомок OP_SUMMATOR, который производит сложение двух полей. И на основе этого же класса OPERATION создать класс...
C++ Сравнение строк в структуре, чтение из файла
Требуется написать программу, которая считывает из файла данные о студентах, сортирует их по фамилии и выводит их на экран. Далее нужно найти однофамильцев в группе и вывести данные о них на экран. Проблемы, собственно, две: 1. Не могу сделать чтение файла через eof (только статичное определение числа записей). 2. Функция поиска однофамильцев (void poisk()) работает неправильно. Подскажите,...
C++ Как правильно прочитать данные? http://www.cyberforum.ru/cpp-beginners/thread801231.html
Как правильно прочитать данные? "ER-200" 06:43 10:40 "Red Arrow" 23:55 07:55 "Express" 23:59 08:00 "Slow Train 1" 10:00 09:59 "Slow Train 2" 10:00 10:00 Строчки отдельно чтобы при выводе написать не только одно слово, а название целиком? Добавлено через 8 минут
C++ Адресация и поиск переменной/функции Здравствуйте! Возникла такая задача. Есть какой-то .exe файл (х64). В иде я нашел переменную и её значение. Через артмани я нашел адрес этой переменной. Я читаю её через ReadProcessMemory(). Однако, если перезапустить этот .exe файл, то все адреса меняются и я не могу снова прочитать значение переменной. --- подробнее

Показать сообщение отдельно
fair7
8 / 8 / 0
Регистрация: 31.12.2010
Сообщений: 81
04.06.2014, 00:05     Вызвать функцию из другой функции.Работа с мышью[Из подменю в меню. Консоль]
где-то в интернете такой исходник нашёл
C++ (Qt)
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <windows.h>
#include <iostream>
using namespace std;
 
int main()
{
    HANDLE hIn;
    HANDLE hOut;
    COORD MouseWhere  = {19, 0};
    COORD DClickWhere = {19, 1};
    COORD LeftWhere   = {19, 2};
    COORD RightWhere  = {19, 3};
    COORD WheelWhere  = {19, 4};
    COORD LoopWhere   = {0, 5};
    COORD EndWhere    = {0, 6};
    bool Continue = TRUE;
    DWORD EventCount;
    int LoopCount = 0;
    int KeyEvents = 0;
    INPUT_RECORD InRec;
    DWORD NumRead;
 
    hIn = GetStdHandle(STD_INPUT_HANDLE);
    hOut = GetStdHandle(STD_OUTPUT_HANDLE);
 
    cout << "Mouse is at     : " << endl;
    cout << "Double Click at : " << endl;
    cout << "Left button is  :  Up" << endl;
    cout << "Right button is :  Up" << endl;
    cout << "Wheel scrolled  : " << flush;
 
    while (Continue)
    {
        SetConsoleCursorPosition(hOut,
                                 LoopWhere);
        cout << LoopCount++ << "         " << flush;
        Sleep(10); // To slow it down!!
 
        GetNumberOfConsoleInputEvents(hIn,
                                      &EventCount);
        while (EventCount > 0)
        {
            ReadConsoleInput(hIn,
                             &InRec,
                             1,
                             &NumRead);
 
            if (InRec.EventType == KEY_EVENT)
            {
                if (InRec.Event.KeyEvent.uChar.AsciiChar == 'x')
                {
                            SetConsoleCursorPosition(hOut,
                                                     EndWhere);
                            cout << "Exiting..." << endl;
                            Continue = FALSE;
                }
            }
            else if (InRec.EventType == MOUSE_EVENT)
            {
                if (InRec.Event.MouseEvent.dwEventFlags == 0)
                {
                    SetConsoleCursorPosition(hOut,
                                             LeftWhere);
                    if (InRec.Event.MouseEvent.dwButtonState & 0x01)
                    {
                        cout << "Down" << flush;
                    }
                    else
                    {
                        cout << "Up  " << flush;
                    }
                    SetConsoleCursorPosition(hOut,
                                             RightWhere);
                    if (InRec.Event.MouseEvent.dwButtonState & 0x02)
                    {
                        cout << "Down" << flush;
                    }
                    else
                    {
                        cout << "Up  " << flush;
                    }
                }
                else if (InRec.Event.MouseEvent.dwEventFlags == MOUSE_MOVED)
                {
                    SetConsoleCursorPosition(hOut,
                                             MouseWhere);
                    cout << InRec.Event.MouseEvent.dwMousePosition.X << "," <<
                            InRec.Event.MouseEvent.dwMousePosition.Y << "  " << flush;
                }
                else if (InRec.Event.MouseEvent.dwEventFlags == DOUBLE_CLICK)
                {
                    SetConsoleCursorPosition(hOut,
                                             DClickWhere);
                    cout << InRec.Event.MouseEvent.dwMousePosition.X << "," <<
                            InRec.Event.MouseEvent.dwMousePosition.Y << "  " << flush;
                }
                else if (InRec.Event.MouseEvent.dwEventFlags == MOUSE_WHEELED)
                {
                    SetConsoleCursorPosition(hOut,
                                             WheelWhere);
                    if (InRec.Event.MouseEvent.dwButtonState & 0xFF000000)
                    {
                        cout << "Down" << flush;
                    }
                    else
                    {
                        cout << "Up  " << flush;
                    }
                }
            }
 
            GetNumberOfConsoleInputEvents(hIn,
                                          &EventCount);
        }
    }
 
    return 0;
}
Добавлено через 1 минуту
а во в борланде работает
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <windows.h>
#include <stdio.h>
 
VOID ErrorExit(LPSTR);
VOID KeyEventProc(KEY_EVENT_RECORD); 
VOID MouseEventProc(MOUSE_EVENT_RECORD); 
VOID ResizeEventProc(WINDOW_BUFFER_SIZE_RECORD); 
 
int main(VOID) 
{ 
    HANDLE hStdin; 
    DWORD cNumRead, fdwMode, fdwSaveOldMode, i; 
    INPUT_RECORD irInBuf[128]; 
    int counter=0;
 
    // Get the standard input handle. 
 
    hStdin = GetStdHandle(STD_INPUT_HANDLE); 
    if (hStdin == INVALID_HANDLE_VALUE) 
        ErrorExit(TEXT("GetStdHandle")); 
 
    // Save the current input mode, to be restored on exit. 
 
    if (! GetConsoleMode(hStdin, &fdwSaveOldMode) ) 
        ErrorExit(TEXT("GetConsoleMode")); 
 
    // Enable the window and mouse input events. 
 
    fdwMode = ENABLE_WINDOW_INPUT | ENABLE_MOUSE_INPUT; 
    if (! SetConsoleMode(hStdin, fdwMode) ) 
        ErrorExit(TEXT("SetConsoleMode")); 
 
    // Loop to read and handle the input events. 
 
    while (counter++ <= 100) 
    { 
        // Wait for the events. 
 
        if (! ReadConsoleInput( 
                hStdin,      // input buffer handle 
                irInBuf,     // buffer to read into 
                128,         // size of read buffer 
                &cNumRead) ) // number of records read 
            ErrorExit(TEXT("ReadConsoleInput")); 
 
        // Dispatch the events to the appropriate handler. 
 
        for (i = 0; i < cNumRead; i++) 
        {
            switch(irInBuf[i].EventType) 
            { 
                case KEY_EVENT: // keyboard input 
                    KeyEventProc(irInBuf[i].Event.KeyEvent); 
                    break; 
 
                case MOUSE_EVENT: // mouse input 
                    MouseEventProc(irInBuf[i].Event.MouseEvent); 
                    break; 
 
                case WINDOW_BUFFER_SIZE_EVENT: // scrn buf. resizing 
                    ResizeEventProc( 
                        irInBuf[i].Event.WindowBufferSizeEvent); 
                    break; 
 
                case FOCUS_EVENT:  // disregard focus events 
 
                case MENU_EVENT:   // disregard menu events 
                    break; 
 
                default: 
                    ErrorExit(TEXT("Unknown event type")); 
                    break; 
            } 
        }
    } 
 
    return 0; 
}
 
VOID ErrorExit (LPSTR lpszMessage) 
{ 
    fprintf(stderr, "%s\n", lpszMessage); 
    ExitProcess(0); 
}
 
VOID KeyEventProc(KEY_EVENT_RECORD ker)
{
    printf("Key event: ");
 
    if(ker.bKeyDown)
        printf("key pressed\n");
    else printf("key released\n");
}
 
VOID MouseEventProc(MOUSE_EVENT_RECORD mer)
{
#ifndef MOUSE_HWHEELED
#define MOUSE_HWHEELED 0x0008
#endif
    printf("Mouse event: ");
    
    switch(mer.dwEventFlags)
    {
        case 0:
            printf("button press\n");
            break;
        case DOUBLE_CLICK:
            printf("double click\n");
            break;
        case MOUSE_HWHEELED:
            printf("horizontal mouse wheel\n");
            break;
        case MOUSE_MOVED:
            printf("mouse moved\n");
            break;
        case MOUSE_WHEELED:
            printf("vertical mouse wheel\n");
            break;
        default:
            printf("unknown\n");
            break;
    }
}
 
VOID ResizeEventProc(WINDOW_BUFFER_SIZE_RECORD wbsr)
{
    printf("Resize event\n");
}
Добавлено через 4 минуты
ещё один по КюТе
C++ (Qt)
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
#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
    HANDLE hStdin; 
    DWORD cNumRead, fdwMode, fdwSaveOldMode, i; 
    INPUT_RECORD irInBuf[128];
    hStdin = GetStdHandle(STD_INPUT_HANDLE); 
    GetConsoleMode(hStdin, &fdwSaveOldMode)  ;     
    fdwMode = fdwSaveOldMode & ENABLE_MOUSE_INPUT; 
    SetConsoleMode(hStdin, fdwMode)  ;    
    while (1) 
    {  
        ReadConsoleInput(  hStdin,   irInBuf,  250,    &cNumRead) ;   
        for (i = 0; i < cNumRead; i++) 
        {
            if (irInBuf[i].EventType==MOUSE_EVENT) 
            {                    
                switch (irInBuf[i].Event.MouseEvent.dwEventFlags)
                {
                case MOUSE_MOVED: cout<<"Moved";
                    break;
                case DOUBLE_CLICK: cout<<"Double Click";
                    break;
                case MOUSE_WHEELED: cout<<"Wheel";
                    break;
                default: cout<<"Click (pressed or released)";
                    break;              
                }
                printf(" (X=%d, Y=%d)\n",  irInBuf[i].Event.MouseEvent.dwMousePosition.X,irInBuf[i].Event.MouseEvent.dwMousePosition.Y);
             }
        } 
    }
 
    return 0; 
}
Добавлено через 44 секунды
более толкового у меня к сожалению нету

Добавлено через 2 минуты
те что под Qt в Borland-е выдаёт такое сообщение
.drectve `-aligncomm:"___hexdig_D2A",5' unrecognized
Добавлено через 14 минут
может быть ответ будет вот здесь
HTML5
1
http://www.cyberforum.ru/c-beginners/thread561098.html
 
Текущее время: 00:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru