[リストへもどる]
一括表示

投稿時間:2004/06/15(Tue) 19:27
投稿者名:モモ
Eメール:
URL :
タイトル:
ColumnHeaders.Widthの自動変更
VB6.0にて開発をしております、初心者のモモと申します。

ListViewの列を上から下まで検索し、ListItemsの文字数が
一番多い(文字が長い)部分にあわせて.ColumnHeaders.Widthを
自動的にコードで変更したいと考えているのですが、
文字数が一番多いレコードの取得の条件式が思いつかず悩んでおります。
やはり1行目は△文字、2行目は△文字 と配列か何かに記録し、
最後に比較する以外ないのでしょうか?
できるならば、配列など使わず取得する方法がよいので
なにかヒントをいただければと思います。
よろしくお願いします。

投稿時間:2004/06/15(Tue) 22:17
投稿者名:Say
Eメール:
URL :
タイトル:
Re: ColumnHeaders.Widthの自動変更
LVM_SETCOLUMNWIDTHをSendMessageするとか。

投稿時間:2004/06/15(Tue) 22:47
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: ColumnHeaders.Widthの自動変更
サンプルを作成している間に先に回答があったようですが、せっかく作ったので

Private Declare Function Sendmessage Lib "user32" _
    Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As Any) As Long

Private Const LVM_SETCOLUMNWIDTH = &H1000 + 30
Private Const LVSCW_AUTOSIZE_USEHEADER = -2

Private Sub Command1_Click()
    Dim col As Long
    With ListView1
        For col = 0 To .ColumnHeaders.Count - 1
            Sendmessage .hwnd, LVM_SETCOLUMNWIDTH, col, ByVal LVSCW_AUTOSIZE_USEHEADER
        Next col
    End With
End Sub

投稿時間:2004/06/24(Thu) 13:11
投稿者名:モモ
Eメール:
URL :
タイトル:
できました!
Sayさん 花ちゃん
お礼が遅くなりすみません。
ありがとうございました(^▽^☆