Setting Console to Maximized in Dev C++ [duplicate

2019-07-31 10:58发布

Possible Duplicate:
Changing the width of a Windows console window?

Im writing a simple brick breaker program. How do I maximize the console window, when the program starts.

#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);
}

2条回答
Fickle 薄情
2楼-- · 2019-07-31 11:24

Call the SetConsoleDisplayMode() function with the CONSOLE_FULLSCREEN_MODE flag.

[If you want to make the window maximise but not go into full screen mode then it is a lot more complicated because you have to calculate how many columns and rows will exactly fit the screen at the current screen resolution, taking into account the size of the window furniture (caption, scrollbars, borders). That isn't a trivial task. See GetSystemMetrics(), EnumDisplayMonitors(), GetMonitorInfo(), SetConsoleScreenBufferSize(), etc.]

查看更多
手持菜刀,她持情操
3楼-- · 2019-07-31 11:32
HWND hWnd = GetConsoleWindow();
ShowWindow(hWnd,SW_SHOWMAXIMIZED);

This works for me (Dev - C++)

查看更多
登录 后发表回答