VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/07/29(Tue) 12:53
投稿者魔界の仮面弁士
Eメール
URL
タイトル代替案

> Win2000以降限定でよければレイヤードウィンドウでも可能かと・・・。
Layered Windowって、コントロール単位ではなく、
フォーム単位でしか適用できなかったような気がします。(未確認)


で、オーナードローに対する代替案を考えて見ました。
ListBoxの替わりに、ListViewコントロール(Ver.6)を利用しています。
これならば、APIを使わずに済むかも。

'===================
Option Explicit

Private Sub Form_Load()
    Me.AutoRedraw = True
    Me.ClipControls = False
    With Me.Picture1
        .AutoRedraw = True
        .Visible = False
        .BorderStyle = 0
        .ScaleMode = vbPixels
    End With
    With Me.ListView1
        Me.Picture1.Move -.Width, -.Height, .Width, .Height

        .View = lvwReport
        .FullRowSelect = True
        .HideSelection = False
        .HideColumnHeaders = True
        .ForeColor = vbWhite
        .ColumnHeaders.Add().Width = .Width - Screen.TwipsPerPixelX * 4
    
        .ListItems.Add Text:="第1の項目"
        .ListItems.Add Text:="第2の項目"
        .ListItems.Add Text:="第3の項目"
        .ListItems.Add Text:="第4の項目"
    End With
End Sub

Private Sub Paint()
    Dim H As Long
    Me.Scale (0, &H0)-(1, &H100)
    For H = &HFF To 0 Step -1
        Me.Line (0, H)-(1, H + 1), RGB(&H22, &H11, H), BF
    Next
    Me.ScaleMode = vbPixels
    
    With Me.ListView1
        Me.Picture1.PaintPicture _
            Me.Image, _
            0, 0, Me.Picture1.Width, Me.Picture1.Height, _
            .Left, .Top, .Width, .Height
    End With
    Set Me.ListView1.Picture = Me.Picture1.Image
End Sub

Private Sub Form_Resize()
    Paint
End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -