投稿日 | : 2003/07/29(Tue) 13:38 |
投稿者 | : Say |
Eメール | : |
URL | : |
タイトル | : Re: 代替案 |
> > Win2000以降限定でよければレイヤードウィンドウでも可能かと・・・。
> Layered Windowって、コントロール単位ではなく、
> フォーム単位でしか適用できなかったような気がします。(未確認)
私もForm以外で使えるかどうか知りませんので、
だいたいこういう感じで考えてます。
Form1を動かすと、ListBoxが微妙に遅れてついてきますが・・・。 (^_^;
Option Explicit
Private Sub Form_Load()
Dim i As Long
Form2.Show , Me
Form2.Left = Me.Left + 1000
Form2.Top = Me.Top + 1000
hListBox = Form2.List1.hwnd
For i = 0 To 25
Form2.List1.AddItem String(10, Chr(Asc("A") + i))
Next
ExStyle = GetWindowLong(Form2.hwnd, GWL_EXSTYLE)
ExStyle = ExStyle Or WS_EX_LAYERED
SetWindowLong Form2.hwnd, GWL_EXSTYLE, ExStyle
SetLayeredWindowAttributes Form2.hwnd, vbWhite, 0, LWA_COLORKEY
Timer1.Interval = 10
Timer1.Enabled = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Form2.Left = Me.Left + 1000
Form2.Top = Me.Top + 1000
End Sub