- ベストアンサー
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」の部分を変えるためには、どのようにすればよいでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
『猫でもわかるプログラミング』というサイト(参考URL)の Windows SDK編 第34章 エジットコントロールの張り付け という記事が参考になるかもしれません。
その他の回答 (2)
- sakusaker7
- ベストアンサー率62% (800/1280)
> Win32APIでは、入力ボックスに関する関数というのはあるのでしょうか? ありません。 各種のコントロールを組み合わせてご自分でおつくりになってください。 Windowsプログラミングの入門書でもあたったほうが結局は早道っぽいですね。
お礼
入門書は図書館にいっぱいあったので助かりました。ありがとうございます。
- vipasigaru
- ベストアンサー率38% (16/42)
サンプルファイルとかろくに見てないけどアドバイス まず、入力と処理を別々にしてみたら? #defineは、変数に変更する int F = 400; んで、wavデータを再生するスレッド立てる前に F = 200; とかに変更して再生できればOKじゃないかなー んで、入力は、次の手順で (1) 新しくウィンドウを作り、表示させる (2) 数値を入力するボックスをそのウィンドウ上に表示させる (3) ボックスに入力された値を取り込む これができれば入力はほぼOKだから、上の F = 200; のところを、ボックスに入力された値を取り込む部分に変えて、 試す、って感じで
補足
大まかな方向性としては理解しているのですが、 >(2) 数値を入力するボックスをそのウィンドウ上に表示させる >(3) ボックスに入力された値を取り込む を実行するための適切な関数がわからず、困惑しております。 関数一覧が載っているhttp://www.monmon-dance.com/win32api/index.htmlなどで調べてみたのですが、入力ボックスに該当するものを見つけることができませんでした。 Win32APIでは、入力ボックスに関する関数というのはあるのでしょうか?
お礼
エジットコントロールを自分なりに応用してみたところ、目標のプログラムができました。ありがとうございました。