ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月28日(日) 02:41

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 
作成者 メッセージ
 記事の件名: トラックバー2
投稿記事Posted: 2005年7月16日(土) 23:13 
今度は、トラックバーの初期値をどのように設定すればよいのか
でつまずいています。


Sub MainWnd_Create に書くのかなぁ?
それと HELP のスクロールバーあたりを調べていたら
ScrollDC や SetScrollInfo あたりが怪しい!
なんて一所懸命頑張ってはみましたが
ここで投了。。。


HELP 難しいです。。。
あたりをつけて調べられるだけ自分では進歩したと思っていますが。。。


前回説明したのと同じプログラム中で、
3つのトラックバー TrackBar1,TrackBar2,TrackBar3があって、
これらは RGB の要素を変更するのに使用しています。
最初は B が 255 にしたいので、
TrackBar3 だけ 100 にしたいのですが、どのようにすればよいのか
どなたかお教えください。

連夜申し訳ありませんが、何卒よろしくお願いします。


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2005年7月17日(日) 01:00 
オフライン

登録日時: 2005年5月31日(火) 07:49
記事: 162
> 前回説明したのと同じプログラム中で、
> 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イベントは、ウィンドウが完成した後で、ウィンドウが表示される前という微妙なタイミングで発生するからです。


通報する
ページトップ
 記事の件名: 分かりました!
投稿記事Posted: 2005年7月19日(火) 09:57 
>註:上記コードの hwndTrackbar には、対象のトラックバーのウィンドウハンドルを適宜指定してください。

これさえ理解できず、苦労しましたがなんとか出来ました!!

>ダイアログの初期化をするときは、そのダイアログの Createイベントで初期化処理をすることが多いと思います。ただ、ウィンドウが表示されてからでないと出来ないような処理は、Activateイベントで処理するのが一般的です。
特異的な例としては、固定サイズダイアログに限り Resizeイベントで初期化処理をすることもあります。Resizeイベントは、ウィンドウが完成した後で、ウィンドウが表示される前という微妙なタイミングで発生するからです。

微妙な問題なんですね。。。


少しずつ前進しているような気がしてとても嬉しいです。
お手数をおかけいたしました。

本当にありがとうございました。


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Semrush [Bot] & ゲスト[11人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean