-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++でウィンドウを処理する方法がわかりません。役に立つコードまたは解決策を手伝ってください。

4

2 に答える 2

1

すぐには答えられませんが、方向性を提案することはできます。

これを分解して、どこが失敗しているかを確認する必要があります (さまざまな種類のバグに役立つアプローチです)。

  1. コードの 2 行目の "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 に答える