引用:
ただ、トラックバーは実は3つあって、どのトラックバーから
得られた値なのかがよく分からずいろいろ調べてみましたが
つまりました。
先にウィンドウハンドルを取得しておき,その値と比較するのがよいでしょう。(下のコードを参照)
引用:
> 対象となるトラックバーに、SendMessage()を使用して TBM_GETPOSを送信します。
お返事いただいた部分のここがよく分かりませんでした。。。
TBM_GETPOSの解説(英語) ※日本版MSDNには,TBM_GETPOSの解説が載ってないです(核爆)
下の例では,"pos"という変数に現在の位置をセットしています。
コード:
' トラックバー3つ(TrackBar1~TrackBar3)と,スタティックテキスト1つ(Static1)を
' RADで作っているものとする。
Dim Track[ELM(3)] As HWND
(中略)
Sub MainWnd_HScroll(nScrollCode As Long, nPos As Integer, hwndScrollBar As DWord)
Dim i As Long, buf As String, pos As Long
If hwndScrollBar<>NULL Then
For i=1 To 3
If Track[i-1]=hwndScrollBar Then
pos=SendMessage(hwndScrollBar, TBM_GETPOS, 0, 0)
buf="トラックバー"+Str$(i)+"が動きました。値は"+Str$(pos)+"です。"
SetDlgItemText(hMainWnd, Static1, buf)
End If
Next
End If
End Sub
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
Track[0]=GetDlgItem(hMainWnd, TrackBar1)
Track[1]=GetDlgItem(hMainWnd, TrackBar2)
Track[2]=GetDlgItem(hMainWnd, TrackBar3)
End Sub
_________________
' ============================================================
' Sinryow Game Home Page -
http://www.sinryow.net/
' Sinryow ActiveBasic Center -
http://ab.sinryow.net/
' ============================================================