• ベストアンサー

Win32APIで入力した数値を反映させたアプリケーションを動かすにはどうすればよいでしょうか?

C++をはじめたばかりなのですが、waveout関数に興味を持ち、今現在勉強中です。 http://www13.plala.or.jp/kymats/study/MULTIMEDIA/waveOut_stereo_16.cppに載っているサンプルをhttp://oshiete1.goo.ne.jp/qa5223409.htmlで頂いたアドバイスを参考にして、「CPad for Borland C++ Compiler」でも警告なしでコンパイルできるようにしました。 サンプルでは、 >#define F 400 //周波数(1秒間の波形数) で周波数が設定されてあります。 これを、ユーザがキーボードで数値を入力して自由に周波数を設定できるように変更しようと思いました。 コマンドプロンプトで数値を入力するのではなく、新しくウィンドウを開いて、数値を入力するためのボックスを開きたいと思います。 ですが、これをC++とWin32APIで実行するための専用の関数が見当たりません。 たとえば、『C/C++によるWin32API -APIサンプル集(http://homepage1.nifty.com/MADIA/vc/api/)』にあるサンプルプログラムを拝見させていただいたのですが、発見することができませんでした。予め設定された選択肢から選択するメニューについては紹介されていたのですが、入力フォームを作る方法については紹介されていなかったように思えます。 Win32APIで数値を入力して >#define F 400 の「400」の部分を変えるためには、どのようにすればよいでしょうか?

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

  • ベストアンサー
  • isle
  • ベストアンサー率51% (77/150)
回答No.3

『猫でもわかるプログラミング』というサイト(参考URL)の Windows SDK編 第34章 エジットコントロールの張り付け という記事が参考になるかもしれません。

参考URL:
http://www.kumei.ne.jp/c_lang/
time0space
質問者

お礼

エジットコントロールを自分なりに応用してみたところ、目標のプログラムができました。ありがとうございました。

その他の回答 (2)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

> Win32APIでは、入力ボックスに関する関数というのはあるのでしょうか? ありません。 各種のコントロールを組み合わせてご自分でおつくりになってください。 Windowsプログラミングの入門書でもあたったほうが結局は早道っぽいですね。

time0space
質問者

お礼

入門書は図書館にいっぱいあったので助かりました。ありがとうございます。

回答No.1

サンプルファイルとかろくに見てないけどアドバイス まず、入力と処理を別々にしてみたら? #defineは、変数に変更する int F = 400; んで、wavデータを再生するスレッド立てる前に F = 200; とかに変更して再生できればOKじゃないかなー んで、入力は、次の手順で (1) 新しくウィンドウを作り、表示させる (2) 数値を入力するボックスをそのウィンドウ上に表示させる (3) ボックスに入力された値を取り込む これができれば入力はほぼOKだから、上の F = 200; のところを、ボックスに入力された値を取り込む部分に変えて、 試す、って感じで

time0space
質問者

補足

大まかな方向性としては理解しているのですが、 >(2) 数値を入力するボックスをそのウィンドウ上に表示させる >(3) ボックスに入力された値を取り込む を実行するための適切な関数がわからず、困惑しております。 関数一覧が載っているhttp://www.monmon-dance.com/win32api/index.htmlなどで調べてみたのですが、入力ボックスに該当するものを見つけることができませんでした。 Win32APIでは、入力ボックスに関する関数というのはあるのでしょうか?

関連するQ&A