今度は、トラックバーの初期値をどのように設定すればよいのか
でつまずいています。
Sub MainWnd_Create に書くのかなぁ?
それと HELP のスクロールバーあたりを調べていたら
ScrollDC や SetScrollInfo あたりが怪しい!
なんて一所懸命頑張ってはみましたが
ここで投了。。。
HELP 難しいです。。。
あたりをつけて調べられるだけ自分では進歩したと思っていますが。。。
前回説明したのと同じプログラム中で、
3つのトラックバー TrackBar1,TrackBar2,TrackBar3があって、
これらは RGB の要素を変更するのに使用しています。
最初は B が 255 にしたいので、
TrackBar3 だけ 100 にしたいのですが、どのようにすればよいのか
どなたかお教えください。
連夜申し訳ありませんが、何卒よろしくお願いします。
トラックバー2
> 前回説明したのと同じプログラム中で、
> 3つのトラックバー TrackBar1,TrackBar2,TrackBar3があって、
> これらは RGB の要素を変更するのに使用しています。
> 最初は B が 255 にしたいので、
> TrackBar3 だけ 100 にしたいのですが、どのようにすればよいのか
> どなたかお教えください。
まずは、トラックバーの最小値と最大値を設定することにしましょう。
色要素の強さを設定する場合、最大値は 100 ではなく、255 に設定すべきでしょうから。
ここでも、メッセージを使います。
値の範囲の設定は、TBM_SETRANGEメッセージです。
使い方は、
SendMessage(hwndTrackbar, TBM_SETRANGE, 0, MAKELONG(最小値,最大値))
となります。ですので今回は
これで範囲の設定は完了です。
> 今度は、トラックバーの初期値をどのように設定すればよいのか
> でつまずいています。
こちらは、TBM_SETPOSメッセージです。
SendMessage()関数のパラメータには、次の値を指定してください。
wPalam … トラックバーを再描画するときは 1 再描画しないときは 0
lParam … トラックバーに設定する値
これでどうでしょうか。
註:上記コードの hwndTrackbar には、対象のトラックバーのウィンドウハンドルを適宜指定してください。
> Sub MainWnd_Create に書くのかなぁ?
それとも、初期化のタイミングがわからないという意味の質問でしょうか?
そうとれなくもないので念のため書いておきます。
ダイアログの初期化をするときは、そのダイアログの Createイベントで初期化処理をすることが多いと思います。
ただ、ウィンドウが表示されてからでないと出来ないような処理は、Activateイベントで処理するのが一般的です。
特異的な例としては、固定サイズダイアログに限り Resizeイベントで初期化処理をすることもあります。
Resizeイベントは、ウィンドウが完成した後で、ウィンドウが表示される前という微妙なタイミングで発生するからです。
> 3つのトラックバー TrackBar1,TrackBar2,TrackBar3があって、
> これらは RGB の要素を変更するのに使用しています。
> 最初は B が 255 にしたいので、
> TrackBar3 だけ 100 にしたいのですが、どのようにすればよいのか
> どなたかお教えください。
まずは、トラックバーの最小値と最大値を設定することにしましょう。
色要素の強さを設定する場合、最大値は 100 ではなく、255 に設定すべきでしょうから。
ここでも、メッセージを使います。
値の範囲の設定は、TBM_SETRANGEメッセージです。
使い方は、
SendMessage(hwndTrackbar, TBM_SETRANGE, 0, MAKELONG(最小値,最大値))
となります。ですので今回は
コード: 全て選択
SendMessage(hwndTrackbar, TBM_SETRANGE, 0, MAKELONG(0, 255))
> 今度は、トラックバーの初期値をどのように設定すればよいのか
> でつまずいています。
こちらは、TBM_SETPOSメッセージです。
SendMessage()関数のパラメータには、次の値を指定してください。
wPalam … トラックバーを再描画するときは 1 再描画しないときは 0
lParam … トラックバーに設定する値
コード: 全て選択
SendMessage(hwndTrackbar, TBM_SETPOS, 1, 255)
註:上記コードの hwndTrackbar には、対象のトラックバーのウィンドウハンドルを適宜指定してください。
> Sub MainWnd_Create に書くのかなぁ?
それとも、初期化のタイミングがわからないという意味の質問でしょうか?
そうとれなくもないので念のため書いておきます。
ダイアログの初期化をするときは、そのダイアログの Createイベントで初期化処理をすることが多いと思います。
ただ、ウィンドウが表示されてからでないと出来ないような処理は、Activateイベントで処理するのが一般的です。
特異的な例としては、固定サイズダイアログに限り Resizeイベントで初期化処理をすることもあります。
Resizeイベントは、ウィンドウが完成した後で、ウィンドウが表示される前という微妙なタイミングで発生するからです。
分かりました!
>註:上記コードの hwndTrackbar には、対象のトラックバーのウィンドウハンドルを適宜指定してください。
これさえ理解できず、苦労しましたがなんとか出来ました!!
>ダイアログの初期化をするときは、そのダイアログの Createイベントで初期化処理をすることが多いと思います。ただ、ウィンドウが表示されてからでないと出来ないような処理は、Activateイベントで処理するのが一般的です。
特異的な例としては、固定サイズダイアログに限り Resizeイベントで初期化処理をすることもあります。Resizeイベントは、ウィンドウが完成した後で、ウィンドウが表示される前という微妙なタイミングで発生するからです。
微妙な問題なんですね。。。
少しずつ前進しているような気がしてとても嬉しいです。
お手数をおかけいたしました。
本当にありがとうございました。
これさえ理解できず、苦労しましたがなんとか出来ました!!
>ダイアログの初期化をするときは、そのダイアログの Createイベントで初期化処理をすることが多いと思います。ただ、ウィンドウが表示されてからでないと出来ないような処理は、Activateイベントで処理するのが一般的です。
特異的な例としては、固定サイズダイアログに限り Resizeイベントで初期化処理をすることもあります。Resizeイベントは、ウィンドウが完成した後で、ウィンドウが表示される前という微妙なタイミングで発生するからです。
微妙な問題なんですね。。。
少しずつ前進しているような気がしてとても嬉しいです。
お手数をおかけいたしました。
本当にありがとうございました。