dポイントプレゼントキャンペーン実施中!

現在私はWINAPI32を用いてプログラミングの学習をしています。
そこで私の作成した簡単なプログラムに、アップダウンコントロールを追加したいと思い、
http://www.kumei.ne.jp/c_lang/sdk3/sdk_204.htm
のページを参照して作成してみました。

ところが私の作成したアップダウンコントロールはウインドウにちゃんと表示はされているものの、矢印の上下ボタン(?)を押しても値が1から一向に変化しません><;

このHPに書いてあるプログラムをそっくりそのままコピペしてみると、しっかりと動きます。
私のプログラムのどこかが悪いのですが、このHPのソースと比較してもどうしてもエラー箇所が見つけられません!泣

このHPのように親ウインドウにアップダウンコントロールを作成した時、私のようなエラーが発生したときの考えられる原因がありましたら、教えていただけないでしょうか!?
よろしくお願い致します!!

A 回答 (2件)

★『アップダウン・コントロール』の注意点。


・このコントロールは面白く、↑矢印でダウンして、↓矢印でアップします。
・このため 1 以上の値にはなりません。つまり、範囲が 1~100 で 1 以下にも
 なりませんから 0 にも変化がおきません。
・それではどうやって↑矢印でアップ、↓矢印でダウンにするのでしょうか?
・ここがポイントですね。
・『猫でもわかるプログラミング』を知っているので次の第205章を参照して下さい。
 http://www.kumei.ne.jp/c_lang/sdk3/sdk_205.htm→『第205章 ダイアログボックス上のアップダウンコントロール』
・ここに UDM_SETRANGE というメッセージについて書かれているので、これを使って
 範囲設定をします。
・このメッセージで範囲設定すると『↑矢印でアップ、↓矢印でダウン』という
 逆転の動作になります。面白いでしょう。動作が。

設定サンプル:
SendMessage( hUpdown, UDM_SETRANGE, 0, MAKELPARAM(10,1) );
SendMessage( hUpdown, UDM_SETRANGE32, (WPARAM)1, (LPARAM)10 );

最後に:
・上記の2行はメッセージの違いによる指定を表しています。
・よって、どちらか一方を記述します。お好きな方を選択して記述して下さい。
・私は、簡単に設定できる UDM_SETRANGE32 のメッセージを使っています。
・また、1 が最小値、10 が最大値を表しています。
・以上。おわり。

参考URL:http://www.kumei.ne.jp/c_lang/sdk3/sdk_205.htm
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます!
プログラムはとても奥が深いので、毎日たいへんです><
これからも頑張って行きたいと思います!
ありがとうございました!!

お礼日時:2007/01/23 20:33

UpDownのWindowメッセージはちゃんとWndProc関数に来ていますか?


デバッグで確認して、もしメッセージが来ていないのであれば
ID_UPDOWN(hMenu)の定義やWM_NOTIFYメッセージでの受け取り方がおかしい
かもしれません。

WinAPIでWindowsアプリを勉強するのであれば
Windowメッセージを理解することが肝心ですよ。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます!
まだまだ学習が足りない自分が恥ずかしいです。
アドバイスありがとうございました!!

お礼日時:2007/01/23 20:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!