Staticに一括表示

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
刈谷 真
記事: 18
登録日時: 2005年7月04日(月) 19:29
お住まい: 愛知県

Staticに一括表示

#1 投稿記事 by 刈谷 真 »

お久しぶりです。

例えば、Static1~10くらいまでに1~10の数字を表示させていのですが、このコードではうまくいきません。
どのように改良すればいいのですか
NoWest
記事: 264
登録日時: 2005年5月31日(火) 10:52
お住まい: 高知
連絡する:

#2 投稿記事 by NoWest »

これでどうでしょうか?

コード: 全て選択

Dim i As Long
For i=0 To 10
    SetWindowText(GetDlgItem(hMainWnd,Static1+i),Str$(i))
Next
Static1~Static10は文字列ではなくConst命令で作成された定数なので
GetDlgItem()の第2パラメータにはStatic1などのIDをそのまま渡します。

上記のコードは、あくまでコントロールを作成した順がStatic1~Static10まで
連続に作成された場合にだけ使えるので、
コントロールが順番に連続に作成されていない場合、即ち
Static1→Button1→Static2→...
のように作成されている場合は、うまく動作するかは保障できませんので

少し面倒ですが下記のようにすると確実に動作すると思います。

コード: 全て選択

Dim i As Long, Static_ID[9] As Long

Static_ID[0]=Static1:Static_ID[1]=Static2
Static_ID[2]=Static3:Static_ID[3]=Static4
Static_ID[4]=Static5:Static_ID[5]=Static6
Static_ID[6]=Static7:Static_ID[7]=Static8
Static_ID[8]=Static9:Static_ID[9]=Static10

For i=0 To 9
    SetWindowText(GetDlgItem(hMainWnd,Static_ID),Str$(i+1))
Next
刈谷 真
記事: 18
登録日時: 2005年7月04日(月) 19:29
お住まい: 愛知県

#3 投稿記事 by 刈谷 真 »

ありがとうございます!
返信する