Q&A

  • 리스튜뷰의 높이 조절
리스트뷰의 Height를 아이템의 갯수에 따라 조절하고 싶은데,

어떻게 하면 될까요.

1  COMMENTS
  • Profile
    최용일 2001.02.16 07:20
    안녕하세요. 최용일입니다.



    ListView_ApproximateViewRect함수로 되는데 저는 이상하게 Width는 되는데 Height는 잘



    안되더군요... 쩝... 아래와 같이 해보세요... 다른 방법입니다.



    리스트뷰의 ViewStyle속성이 vsReport혹은 vsList인 경우...



    uses

    CommCtrl;



    procedure TForm1.Button1Click(Sender: TObject);

    var

    ItemHeight: Integer;

    HeaderHeight: Integer;

    ListHeader: THandle;

    R: TRect;

    begin

    ListHeader := ListView_GetHeader(ListView1.Handle);

    GetWindowRect(ListHeader, R);

    HeaderHeight := R.Bottom - R.Top;



    ListView_GetItemRect(ListView1.Handle, 0, R, LVIR_BOUNDS);

    ItemHeight := R.Bottom - R.Top;



    ListView1.ClientHeight := HeaderHeight + (ListView1.Items.Count * ItemHeight) + 2; // 2 = header margine

    end;



    리스트뷰의 ViewStyle속성이 vsIcon혹은 vsSmallIcon인 경우...



    uses

    CommCtrl;



    procedure TForm1.Button1Click(Sender: TObject);

    var

    R: TRect;

    begin

    ListView_GetViewRect(ListView1.Handle, R);

    ListView1.ClientHeight := R.Bottom - R.Top;

    end;



    ^^ 항상 즐코하세요.



    Parkisu wrote:

    > 리스트뷰의 Height를 아이템의 갯수에 따라 조절하고 싶은데,

    > 어떻게 하면 될까요.