投稿日 | : 2006/09/02(Sat) 09:40 |
投稿者 | : も |
Eメール | : |
URL | : |
タイトル | : Re^2: ファイルリストボックスに横スクロールバー |
> 花ちゃんさん、neptuneさん 有難うございます。
> でも、私が思っているのとは少し違います。
> ネットで拾った下記ソースをそんまま使うとすぐできるのですが、
> わたしのは、その間にいろいろ書き込んでいますのでその辺がよく分かりません。
> ----------------------------------------------------------
> Option Explicit
>
> Private Declare Function SendMessage Lib "user32" Alias "SendMessageA
" _
> (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Lo
ng
>
> '横スクロールバー追加
> Private Const LB_SETHORIZONTALEXTENT = &H194
>
> Private Sub Form_Load()
> Dim lngRet As Long
>
> '第三引数はスクロール幅となる
> lngRet = SendMessage(Me.List1.hwnd, LB_SETHORIZONTALEXTENT, 240, 0)
>
> End Sub
> ----------------------------------------------------------
>
> 因みに私のリストボックスのソースは
> ----------------------------------------------------------
> 'DWGファイルリストに同じ名前がないかチェックし、
> 'なかったらリストに追加する
> Sub SameFileChk(FullName As String)
> Dim j As Integer
> j = 0
> If DwgList.listcount <> 0 Then
> 'DWGファイルリストが空ではない時
> For i = 0 To DwgList.listcount - 1
> If FullName = DwgList.List(i) Then
> 'ファイルリストの名前と同一の時
> j = 1
> Exit For
> Else
> 'ファイルリストに名前がない時
> j = 0
> End If
> Next
> End If
> 'ファイルリストに名前がなければ追加
> If j = 0 Then
> DwgList.AddItem FullName
> End If
> End Sub
> ----------------------------------------------------------
> ↑こんな感じです。ここに単純に先のソースを組み込めば出来る
> と思ったのですが甘かったです。上のソースは実行時にエラーが
> でます。リストボックスを大きくしても実行後の大きさは変わりません。
> よく分からないです。宜しくお願いいたします。
どんな実行時エラーが起こっているのか書いてないので、よく分からないです。
とりあえず Option Explicit について調べるといいかもしれないですが、よく分からないです。
あと、SendMessageの宣言とその使い方が一致していないです。
> lngRet = SendMessage(Me.List1.hwnd, LB_SETHORIZONTALEXTENT, 240, 0)
こうではなく、↓の様になるかと
lngRet = SendMessage(Me.List1.hwnd, LB_SETHORIZONTALEXTENT, 240, ByVal 0)
(また、どうやらVB6のFileListBoxはWS_HSCROLLスタイルが適用されていないか、
または何かのコンテナに入っているかもしれないです、話題とは関係ないですが)