如何以最大化模式启动C++程序的BGI窗口?
Posted
技术标签:
【中文标题】如何以最大化模式启动C++程序的BGI窗口?【英文标题】:How to start BGI window of c++ program in maximized mode? 【发布时间】: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。请提供一些有用的代码或解决方案。
【问题讨论】:
【参考方案1】:我没有直接的答案,但我可以建议一个方向。
您需要将其分解以查看失败的地方(这种方法有助于解决许多不同类型的错误)。
您是否正在进入第二行“ShowWindow”代码?您可以检查该行上的断点。
FindWindow 返回什么?我的猜测是 NULL,但您可以确认这一点(例如将其拉到自己的行: HWND hwndBGI = FindWindow(NULL,"Windows BGI"); ShowWindow(hwndBGI,SW_MAXIMIZE);
然后您可以检查 FindWindow 返回的内容。如果为NULL,你就知道去哪里找问题了;在对 FindWindow 的调用中。
-
如果 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;
【讨论】:
以上是关于如何以最大化模式启动C++程序的BGI窗口?的主要内容,如果未能解决你的问题,请参考以下文章