【问题标题】:How to start BGI window of c++ program in maximized mode?如何以最大化模式启动C++程序的BGI窗口?
【发布时间】:2014-12-14 15:36:36
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

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

    祝你成功!

    【讨论】:

      【解决方案2】:

      使用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;
      
      }
      

      【讨论】:

        猜你喜欢
        • 2020-10-24
        • 2011-06-10
        • 1970-01-01
        • 2011-02-14
        • 2023-01-17
        • 1970-01-01
        • 2020-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多