如何在最大化模式下启动c ++程序的BGI窗口?

时间:2014-12-14 15:36:36

标签: c++ windows graphics dev-c++ bgi

我正在为我的高中做一个c ++项目。我正在使用Dev c ++和图形。我想要的是当BGI窗口打开时它应该以最大化模式而不是普通窗口开始。 以下是我的代码,但它不起作用:(

#include<iostream>
#include<conio.h>
#include<graphics.h>
#include<windows.h>

using namespace std;

 void loading() {
 int x=170,i,gdriver=DETECT,gmode;
 initgraph(&gdriver,&gmode,"");
 settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
 outtextxy(170,180,"LOADING,PLEASE WAIT");

  for(i=0;i<300;++i)
 {
  delay(30);
  line(x,200,x,220);
  x++;
 }
getch();

}

main() {

ShowWindow( GetConsoleWindow(), SW_HIDE );
loading();
ShowWindow(FindWindow(NULL,"Windows BGI"),SW_MAXIMIZE);

}

控制台窗口根据我的需要隐藏,但BGI窗口没有达到最大化。我是c ++的新手所以我不知道如何用c ++处理windows。请帮助解决一些有用的代码或解决方案。

2 个答案:

答案 0 :(得分:1)

我没有立即回答,但我可以建议一个方向。

你需要将其分解以查看失败的位置(这种方法可以解决许多不同类型的错误)。

  1. 你是否到了第二个&#34; ShowWindow&#34;代码行?您可以检查该行的断点。

  2. 什么是FindWindow返回?我的猜测是NULL,但你可以确认(例如将其拉出到自己的行: HWND hwndBGI = FindWindow(NULL,&#34; Windows BGI&#34;); 的ShowWindow(hwndBGI,SW_MAXIMIZE);

  3. 然后你可以查看FindWindow返回的内容。如果为NULL,您知道在哪里查找问题;在FindWindow的调用中。

    1. 如果FindWindow失败,在调用FindWindow之后调用GetLastError可能会为您提供更多信息。
    2. FindWindow并不总能成功。潜在的问题可能是窗口名称不准确,在不同的进程中找到窗口的问题,窗口不是顶级窗口....

      祝你成功!

答案 1 :(得分:0)

使用getmaxwidth()getmaxheight()

打开最大窗口
/* getmaxwidth and getmaxheight example */ 

#include <graphics.h>



int main(void)

{

   /* Make a window, as big as possible */

   initwindow(getmaxwidth( ), getmaxheight( ));



   /* clean up */

   getch();

   closegraph();

   return 0;

}