-1

我正在为我的高中制作一个 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。请帮助提供一些有用的代码或解决方案。

4

2 回答 2

1

我没有直接的答案,但我可以建议一个方向。

您需要将其分解以查看失败的地方(一种有助于解决许多不同类型错误的方法)。

  1. 您是否正在进入第二行“ShowWindow”代码?您可以检查该行上的断点。

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

然后您可以检查 FindWindow 返回的内容。如果为NULL,你就知道去哪里找问题了;在对 FindWindow 的调用中。

  1. 如果 FindWindow 失败,在调用 FindWindow 之后调用 GetLastError 可能会为您提供更多信息。

FindWindow 并不总是成功。潜在问题可能是窗口名称不准确、在不同进程中查找窗口的问题、不是顶级窗口的窗口......

祝你成功!

于 2014-12-14T21:17:52.157 回答
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;

}
于 2021-02-20T14:10:36.480 回答