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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
dr.curse
389 / 345 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
#1

Консоль - C++

10.03.2011, 21:19. Просмотров 1108. Ответов 15
Метки нет (Все метки)

Написал вот такую программу
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
#include <windows.h>
#include <conio.h>
int main()
{
    HWND hWnd=FindWindow("ConsoleWindowClass",NULL);
    HDC hDC=GetDC(hWnd);
    RECT Rect;
    GetClientRect(hWnd,&Rect);
    int l=10,t=10,r=90,b=90;
    Ellipse(hDC,l,t,r,b);
    while (true)
    {
        switch (getch())
        {
            case 'd':
                l+=10;
                r+=10;
                InvalidateRect(hWnd, NULL, TRUE);
                Ellipse(hDC,l,t,r,b);
                break;
            case 'a':
                l-=10;
                r-=10;
                InvalidateRect(hWnd, NULL, TRUE);
                Ellipse(hDC,l,t,r,b);
                break;
            case 'w':
                t-=10;
                b-=10;
                InvalidateRect(hWnd, NULL, TRUE);
                Ellipse(hDC,l,t,r,b);
                break;
            case 's':
                t+=10;
                b+=10;
                InvalidateRect(hWnd, NULL, TRUE);
                Ellipse(hDC,l,t,r,b);
                break;
        }
    }
    return 0;
}
Все нормально работает но когда жму Alt+Enter чтобы перейти в полноекранный режым то круг пропадает как сделать чтобы не проподал?

Добавлено через 2 часа 20 минут
Что никто незнает?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2011, 21:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Консоль (C++):

Консоль и C++ - C++
Допустим у меня есть выражение, значение которого я хочу подсчитать. Я ввожу это выражение, затем ввожу знак равенства нажимаю клавишу...

консоль - C++
Напишите полезные ,и красивые скрипты для консоль ,на пример какие то эфекты при загрузки

Консоль - C++
Как сделать так , что бы при выполнении кода не появлялась консоль ?

Консоль - C++
Подскажите пожалуйста,не могу включить консоль в играх,обычно это буква ё,а что то не получается,консоль не включается,в чем причина,или...

Консоль - C++
Если в консоли зайти в свойства то там есть свойство размер окна! как мне его изменить???

консоль - C++
Есть файл с данными (большой текст, около 300 строк), когда считываю данные оттуда и вывожу их на экран(в консоли) часть данных теряется ...

15
IrineK
Заблокирован
11.03.2011, 00:23 #2
У меня ваша прога как-то криво пошла: вообще ничего не бегает.

А вот такой шарик бегает по консоли:
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
#if       _WIN32_WINNT < 0x0500
  #undef  _WIN32_WINNT
  #define _WIN32_WINNT   0x0502
#endif
 
#include <windows.h>
#include <conio.h>
int main()
{
        HWND hWnd=GetConsoleWindow();
        HDC hDC=GetDC(hWnd);
         int l=10,t=10,r=90,b=90;
        Ellipse(hDC,l,t,r,b);
    while (true)
        {
                switch (getch())
                {
                        case 'd':
                SelectObject(hDC, GetStockObject(BLACK_BRUSH));    
                Ellipse(hDC,l,t,r,b);
                l+=10;
                                r+=10;
                SelectObject(hDC, GetStockObject(WHITE_BRUSH));    
                                Ellipse(hDC,l,t,r,b);
                                break;
                        case 'a':
                                SelectObject(hDC, GetStockObject(BLACK_BRUSH));    
                Ellipse(hDC,l,t,r,b);
                l-=10;
                                r-=10;
                SelectObject(hDC, GetStockObject(WHITE_BRUSH));    
                                Ellipse(hDC,l,t,r,b);
                                break;
                        case 'w':
                SelectObject(hDC, GetStockObject(BLACK_BRUSH));    
                Ellipse(hDC,l,t,r,b);    
                t-=10;
                                b-=10;
                                SelectObject(hDC, GetStockObject(WHITE_BRUSH));    
                                Ellipse(hDC,l,t,r,b);
                                break;
                        case 's':
                SelectObject(hDC, GetStockObject(BLACK_BRUSH));    
                Ellipse(hDC,l,t,r,b);    
                t+=10;
                                b+=10;
                                SelectObject(hDC, GetStockObject(WHITE_BRUSH));                                  
                                Ellipse(hDC,l,t,r,b);
                                break;
                }
        }
        return 0;
}
Если развернуть экран, сначала тоже исчезает, но потом принажатии W A S D возвращается.
Прикольно.
0
dr.curse
389 / 345 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
13.03.2011, 20:20  [ТС] #3
IrineK, а для чего эти строки?
C++
1
2
3
4
#if       _WIN32_WINNT < 0x0500
  #undef  _WIN32_WINNT
  #define _WIN32_WINNT   0x0502
#endif
0
IrineK
Заблокирован
13.03.2011, 21:00 #4
Эти строки для тех, у кого GetConsoleWindow() не узнает коммпилятор.
Попробуйте без них. Если пойдет, то вам они не нужны.
0
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
13.03.2011, 22:29 #5
кстати граждане, а какой код добавить чтоб программа сама развернулась?

Добавлено через 1 час 10 минут
никто не подскажет?
0
Subgrando
40 / 40 / 3
Регистрация: 28.01.2011
Сообщений: 175
13.03.2011, 22:38 #6
Подскажет.

C++
1
ShowWindow(NULL, SW_MAXIMIZE);
0
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
13.03.2011, 22:43 #7
Subgrando, все равно не раскрывает(.
0
Subgrando
40 / 40 / 3
Регистрация: 28.01.2011
Сообщений: 175
13.03.2011, 22:46 #8
C++
1
    ShowWindow(GetConsoleWindow(), SW_MAXIMIZE);
Так должно работать.
0
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
13.03.2011, 22:49 #9
Subgrando, эм..молодая душа вы меня не поняли.. хотелось бы сделать не так как будто консоль развернутая.. а так, как она выглядит после нажатия alt+enter
0
Subgrando
40 / 40 / 3
Регистрация: 28.01.2011
Сообщений: 175
13.03.2011, 22:52 #10

Не по теме:


MessageBoxA(NULL, "Эта система не поддерживает работу в полноэкранном режиме.", "Командная строка", MB_OK);




А что, собственно, должно происходить после нажатия на Alt+Enter?
0
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
13.03.2011, 22:59 #11
Subgrando, ща скрин дам

ой пи**ец.. а там в полноэкранном кнопка printscreen не пашет O_O

ну короче попробуй

WIN+R -> cmd

выйдет консоль и нажми alt+enter.. у тебя что не переходит в полноэкранный режим?

Добавлено через 3 минуты
Subgrando, if(Subgrabdo не напишет мне код)
{ оторвать ему бошку
return на место
}
0
Subgrando
40 / 40 / 3
Регистрация: 28.01.2011
Сообщений: 175
13.03.2011, 23:01 #12
Если я не ошибаюсь, в Windows Vista и Windows 7 нельзя использовать Alt+Enter.
Поэтому, проще сразу забыть об этом, что и советую.
0
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
13.03.2011, 23:03 #13
Subgrando, мдэ. короче пошлю себя в гугл на ганг за ответом
0
talis
792 / 544 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
13.03.2011, 23:46 #14
instagib, я давно уже не занимался чистым WinAPI, но попробуйте послать окну консоли сообщения о нажатии Enter при нажатой Alt - либо через WM_CHAR или WM_KEYDOWN, либо через SendInput. Но честно говорю - не знаю, получится ли.
0
Subgrando
40 / 40 / 3
Регистрация: 28.01.2011
Сообщений: 175
14.03.2011, 00:01 #15
Можно спросить..?

Зачем вообще всё это делать, если современные версии Windows это не понимают? Или программа для старых компов и ОСей?
0
14.03.2011, 00:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2011, 00:01
Привет! Вот еще темы с ответами:

Консоль - C++
Когда я создаю консольный проект, а первый уже закрыт, то после компеоляции и запуска у меня запускается предыдущая программа, как мне...

Консоль - C++
Можно ли в консольном приложении сделать так, чтобы саму консоль не было видно вообще?

Пустая консоль - C++
Когда открываешь программу(после компиляции на dev-c++), то появляется пустая консоль, на которой ничего не отображается. #include...

Вывод в консоль - C++
Код без ошибок (VS не ругается при компиляции)! Но консоль не хочет выводить сообщений.. В чем может быть проблема? В консоли виден...


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

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

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