Настройка консоли в развернутом виде в Dev C++

Возможный дубликат:
Изменение ширины окна консоли Windows?

Я пишу простую программу для разрушения кирпичей. Как развернуть окно консоли при запуске программы.

#include <iostream>
#include <windows.h>
#include <algorithm>
#include <conio.h>
#define _WIN32_WINNT 0x500
using namespace std;
int lives = 2;
void gotoxy(int x , int y);
void hideCursor();
class Grid
{
      public:
      char grid[20][79];
      void fill()
      {
           for(int i = 0; i < 20; i++)
           {
                   for(int j = 0; j < 79; j++)
                   {
                           grid [i][j] = (char)176;
                   }
            }
      }
      void print()
      {
           gotoxy(0,0);
           for(int i = 0; i < 20; i++)
           {
                   for(int j = 0; j < 79; j++)
                   {
                           cout << grid [i][j];
                   }
                   cout << endl;
           }
      }    
};

class Paddle
{
      public:
      int x_pos;
      char paddle[7];    
      void fill()
      {
           x_pos = 35;
           for (int i = 0; i < 7; i++)
               paddle [i] = (char)219;
      }

      void print()
      {
           gotoxy (x_pos,23);
           for (int j = 0; j < 7; j++)
               cout << paddle [j];
      }
      void redraw()
      {
           for(int i = 0; i < 80; i++)
           {
                   gotoxy (0+i,23);
                   cout << " ";

           } 
           print();  
      }
};
class Ball
{
      public:
      int x_pos, y_pos;
      bool crashed;
      char ball;
      void create()
      {
           ball = 'O';
           crashed = false;
           x_pos = 38;
           y_pos = 22;     
      }
      void show()
      {
           gotoxy (x_pos,y_pos);
           cout << ball;
      }
};

int main()
{ 
    char move;
    Grid grid;
    Paddle paddle;
    Ball ball;
    grid.fill();
    paddle.fill();
    grid.print();
    paddle.print();
    ball.create();
    ball.show();
    hideCursor();
    while(!ball.crashed)
    {
          move = getch();
          move = getch();
          if(move ==  75)
               paddle.x_pos--;
          else if(move == 77)
               paddle.x_pos++;
          paddle.redraw(); 
    }
    cin.get();
    return 0;
}
void hideCursor()
{
    HANDLE cmd;
    CONSOLE_CURSOR_INFO cur;
    char *str = (char*)malloc(32);
    cur.dwSize = 1;
    cur.bVisible = FALSE;  
    cmd = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorInfo(cmd, &cur);
}
void gotoxy(int x , int y)
{
     COORD coord;
     coord.X = x;
     coord.Y = y;
     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

person viraj    schedule 07.07.2011    source источник
comment
stackoverflow.com/ вопросы/190543/   -  person Igor Oks    schedule 07.07.2011
comment
Это не дубликат. Связанный вопрос касается изменения количества столбцов в окне консоли. Речь идет о переходе в полноэкранный режим.   -  person Ian Goldby    schedule 23.04.2014


Ответы (2)


Вызовите функцию SetConsoleDisplayMode() с флаг CONSOLE_FULLSCREEN_MODE.

[Если вы хотите развернуть окно, но не переходить в полноэкранный режим, то это намного сложнее, потому что вам нужно рассчитать, сколько столбцов и строк точно уместится на экране при текущем разрешении экрана, принимая во внимание размер окна. оформление окна (заголовок, полосы прокрутки, границы). Это не тривиальная задача. См. GetSystemMetrics(), EnumDisplayMonitors(), GetMonitorInfo(), SetConsoleScreenBufferSize() и т. д.]

person Ian Goldby    schedule 07.07.2011
comment
Полный экран мне больше подходит. Но как мне это реализовать? Я не знаком с Win32 API, поэтому сам написать не могу. Есть фрагменты кода. - person viraj; 07.07.2011

HWND hWnd = GetConsoleWindow();
ShowWindow(hWnd,SW_SHOWMAXIMIZED);

Это работает для меня (Dev - C++)

person viraj    schedule 08.07.2011