• ベストアンサー

MS-DOS(コマンドプロンプト)の位置

C++なんですが、 実行途中にコマンドプロンプトで数値を入力して 描画をさせてるんですが、 描画範囲とコマンドプロンプトの位置が重なってしまい、 困っています。 C++でコマンドプロンプトの位置や大きさを指定することってできないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

GetActiveWindow で「コマンドプロンプト」のウィンドウハンドルが取れるなら, それに対して何らかのメッセージを飛ばせば動かないかな? いや, 単なる思いつきなんだけど. でも, むしろ「だったら入力もダイアログボックスかなんか使って自前で全部処理しろ」の方が普通かも知んない.

ryouou
質問者

お礼

回答、ありがとうございます。 GetActiveWindowですか。わかりました、一度試してみます☆ 確かに・・・、その通りかもしんないですね(^^;;) ありがとうございましたm(__)m

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.1

>実行途中にコマンドプロンプトで数値を入力して どのようなソースコードを書かれているのでしょうか?

ryouou
質問者

補足

以下のようです。 n次関数をデスクトップに表示させようというのです。 いろいろとごちゃごちゃなってますが、そこら辺は気にしないでやってください(苦笑) ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー #include<iostream.h> #include<windows.h> int main(){ int jisuu; //何次関数か int a,i,j,k,l; //for文用 int x,y,X,Y; //数学座標,実座標 int xm,ym,Xm,Ym; //数学座標の初期値,実座標の初期値 double yw,ymw; //数学座標でのyの値(これは実数.整数に直す必要あるため.) double yb,ymb; //x^kを計算する為用 double jigen[100]; //n次元の係数をいれる箱 //何次関数にするかを決める. cout <<"次数を決めてください."; cin >> jisuu; cout <<"\n"; //それぞれの次元の係数を決める. for( i = jisuu ; i >= 0 ; i-- ){ cout << i <<"次の係数を決めてください"; cin >> jigen[i] ; cout << jigen[i] << "\n"; } HWND win ; HDC dev ; HPEN shiro_pen, aka_pen, ao_pen,kuro_pen ; //ペン HBRUSH shiro_brush, murasaki_brush, daidai_brush ; //ブラシ win = GetActiveWindow(); dev = GetDC( win ); //ペンやブラシの色・太さなどを決める. shiro_pen = CreatePen( PS_SOLID, 1 ,RGB( 255,255,255 ) ); aka_pen = CreatePen( PS_SOLID, 1 ,RGB( 255, 0, 0 ) ); ao_pen = CreatePen( PS_SOLID, 1 ,RGB( 0, 0,255 ) ); kuro_pen = CreatePen( PS_SOLID, 1 ,RGB( 10, 10, 10 ) ); shiro_brush =CreateSolidBrush( RGB( 255,255,255 ) ); murasaki_brush =CreateSolidBrush( RGB( 98, 16,165 ) ); daidai_brush =CreateSolidBrush( RGB( 231,111, 12 ) ); shiro_brush =CreateSolidBrush( RGB( 255,255,255 ) ); //白のペンとブラシで土台を作る. SelectObject( dev , shiro_pen ); SelectObject( dev , shiro_brush ); Rectangle( dev ,0 ,0 , 900 , 750 ); //黒ペンでx軸,y軸を描く. SelectObject( dev , kuro_pen ); MoveToEx( dev, 0 ,375 ,NULL ); LineTo( dev , 900 , 375 ); MoveToEx( dev, 450 ,0 ,NULL ); LineTo( dev , 450 , 750 ); //初期値を求める. xm = (-450); Xm = 450 + xm; ymb = 1; ymw = 0; for( a = jisuu ; a >= 0 ; a-- ){ //x^kを計算 for( l = 1 ; l <= a ; l++ ){ ymb = ymb * xm; } ymw = ymw + jigen[a] * ymb; //数学y座標を求める(このときは実数) ymb=1; } ym = ceil(ymw); //数学y座標(実数を整数に直す) Ym=375 - ym; //実y座標 //実x座標でいう,1~900 //数学x座標でいう,-449~450 //までxを変化させて,x,yを求める. yw=0; yb=1; for( j = 1 ; j <= 900 ; j++ ){ X = j; x = X-450; //x座標がjであるときの,y(実数)を求める. for( k = jisuu ; k >= 0 ; k-- ){ //x^kを計算 for( l = 1 ; l <= k ; l++ ){ yb = yb * x; } yw = yw + jigen[k] * yb; yb=1; } y = ceil(yw); //数学y座標(実数を整数に直す) X = 450 + x; //実x座標 Y = 375 - y; //実y座標 //(Xm,Ym)から(X,Y)に線を引く SelectObject( dev , kuro_pen ); MoveToEx( dev, Xm ,Ym ,NULL ); LineTo( dev , X , Y ); //(Xm,Ym)を(X,Y)に代入. Xm=X; Ym=Y; yw=0; } //ペンやブラシを捨てる(片付ける) DeleteObject( shiro_pen ); DeleteObject( aka_pen ); DeleteObject( ao_pen ); DeleteObject( shiro_brush ); DeleteObject( murasaki_brush ); DeleteObject( daidai_brush ); DeleteObject( kuro_pen ); ReleaseDC( win , dev ); }

関連するQ&A

  • コマンドプロンプト

    Windows Update 実行後の不要なバックアップファイルを消去するには、管理者プロンプトから DISM/online/cleanup-image/spsuperseded と入力実行すれば良い、との事なので、 コマンドプロンプトを管理者で立ち上げると、プロンプトが C:\windows\system32> となったので上記のコマンドを入力・実行したところ エラー87 online/cleanup-image/spsuperseded は不明なオプションです。 と表示される。 上記のコマンドを実行するにはどうすれば良いのか教えて下さい。

  • MS-DOSプロンプトについて

     「スタート」→「プログラム」→「MS-DOSプロンプト」を選択すると、Windowsが終了してしまいます。(プロンプトは出ます。)多分、exit以外では抜けられません。「スタート」→「ファイル名を指定して実行」でcommand.comを指定すると正常(?)です。プロパティのコマンドラインは、C:\WINDOWS\COMMAND.COMとなっております。なぜでしょうか?

  • コマンドプロンプト

    コマンドプロンプトを出すために「スタート」「ファイル名を指定して実行」で「cmd」と入力すれば出ると思います。しかし「command」と入力しても出ると聞きました。しかし実際に出してみると「command」のときは「kkcfuncが組み込まれました」とか「マイクロソフトかな漢字変換バージョン」とか出ます。「cmd」と「command」では違うのでしょうか? それと「command」のときは「C:\DOCUME~」と出ますが「~」のチルダってどういう意味ですか?

  • コマンドプロンプトについて

    コマンドプロンプトのコマンドに『set』があります。 2000/XPにおいては、オプションで[/P]を指定することによりキーボードからの入力を変数にセットできますがWindowsNTにおいても使用することが出来るのでしょうか?(キーボード入力によって実行する処理を変えたい) また、不可能である場合他の方法があればご教授していただけるようお願いします。

  • MS-DOSプロンプト すごく困ってます(T_T)

    今朝「OEの起動が遅いProtectedStorage キーの初期化方法」と言う下記の質問をさせていただきました。 ------------------ ProtectedStorage キーに正しくない情報が記録され2ている場合も OE の起動に時間がかかります。 次の手順で ProtectedStorage キーを初期化してください。 (1)[スタート]-[ファイル名を指定して実行] から regedit を起動します。 (2)HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services を開き、ProtectedStorage をクリックします。 (3)[レジストリ]-[レジストリファイルの書き出し] で任意の reg ファイルに ProtectedStorage キーを書き出します。 (4)ProtectedStorage キーを削除します。 (5)[スタート]-[プログラム]-[MS-DOS プロンプト] を開き、次のコマンドを実行します。 C:\WINDOWS>cd system C:\WINDOWS\SYSTEM>pstores -install (6)Windows を再起動します。 ------------------------- 先ほどは3-4番の質問でしたが、そこはクリアして 次は5番で困っています。 スタート→MS-DOSプロンプトがなく スタート→プログラム→アクセサリ→コマンドプロンプトしか見当たりません。 とりあえず、その画面で上記を入力しましたが 「C:\WINDOWS>cd systemは内部コマンド、または内部コマンド、操作可能なプログラム、またはバッチファイルとして認識されていません」 と出て、再度入力を求めるような形になります。 コマンドプロンプト画面の文字は C:Ddocuments and Settings\***** ****> です。 (***は私の名前) この後何をどうしたらいいでしょうか。 キーを削除しているので、とても困っています。 最悪(3)で保存したものを再度同じ場所に戻せばよろしいでしょうか? その操作方法も出来ればお願いしますm(_ _)m

  • コマンドプロンプトについて詳しい方 2

    コマンドプロンプトについて詳しい方 下記サイト URLに少し下がったあたりに https://mebee.info/2020/04/17/post-9589/ で少し下がると Apacheインストール 「コマンドプロンプトを管理者として実行します。」とあり、やり方が書いてあるのですが、 自分のコマンドプロンプトを管理者として起動させた直後のカレントディレクトリは「C:¥windows¥system32」となっているのですが、この画面にURLにあったコード以下のように入力したのですが、 付属画像のように cd C:\Apache24\bin とhttpd.exe -k installをそのまま入力してのですが、「指定されたパスが見つかりません。」と出てしまいます。 自分のコマンドプロンプトにあ書いてある C:¥windows¥system32を消して、 cd C:\Apache24\bin とhttpd.exe -k installをそのまま入力するということでしょうか? C:¥windows¥system32が消そうとしても消えません。何かやり方が間違っているのでしょうか? ちなみにCドライブ内にはちゃんとファイルは保存してあります。

  • コマンドプロンプト

    簡単な質問ですいませんが、回答よろしくお願いします。 コマンドプロンプトで---.batを実行するにはどうコマンド入力すればいいのでしょうか。

  • コマンドプロンプトが一瞬で消える

    コマンドプロンプトを開いた状態に出来ません。 スタート⇒すべてのプログラム⇒アクセサリの中のコマンドプロンプトをクリックしても、画面が一瞬表示されてすぐに消えてしまいます。 ファイル名を指定して実行から、cmdと入力してもコマンドプロンプトの画面が一瞬現れ、すぐに消えてしまいます。 分かる方、何故、一瞬で消えてしまうのか教えてください。 お願いします。

  • MS-DOSプロンプトの使い方

     こんにちは、質問があります。Windows98SEを使っているのですが、その付属のMS-DOSプロンプトを使うにあたって、cd(コマンド)で悩んでいます。普通に、 C:\>cd windows とかで、使っていたのですが、My DocumentsやProgram Filesなど途中で空白が入っているディレクトリなどに移動するときは、cdコマンドを実行すると、 パラメーターが多すぎます とエラーが出て、移動できません。どうやったら、空白の入っているディレクトリにも移動できるようになるのでしょうか? よろしければ教えてください。お願いします。

  • コマンドプロンプトで

    こんにちは。質問させてください。 いままでPHPをWEBブラウザの処理をMainに作成してきました。 簡単な文字列を整形するプログラムを作りました。 これは画面(ブラウザ)に表示するのではないので コマンドプロンプトで実行したいのですが、 単に c:\work>sample.php と実行すると、 エディタが開いてsample.phpの内容を表示するだけに なってしまい、特に処理が行われていません。 どのようにすればコマンドプロンプトから実行できるのでしょうか? C言語のように実行ファイルをコマンドプロンプトから 実行して処理させるようにしたいのですが・・・・ 質問自体が大きな間違いでしたらすみません。 どうかよろしくお願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう