> 前回説明したのと同じプログラム中で、
> 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イベントは、ウィンドウが完成した後で、ウィンドウが表示される前という微妙なタイミングで発生するからです。