TListBox에서 지원하지 않는 기능이기에..
직접 Win32 API로 WindowStyle을 변경해주면 됩니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int iStyle=GetWindowLongA(ListBox1->Handle,GWL_STYLE);
SetWindowLongA(ListBox1->Handle,GWL_STYLE,iStyle&(~WS_VSCROLL));
}
//---------------------------------------------------------------------------
대게 위와같이 하면 WindowStyle이 변경되는데...
VCL의 TListBox의 경우 ScrollBar가 있었던 부분이 Client영역으로 인식못하는지
화면 update가 안되네요
그래서 다음과 같은 꼼수를 이용하여
ScrollBar를 없앤후에 Client영역이 Update되도록 했습니다.
//세로 scrollbar 없애기
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int iStyle=GetWindowLongA(ListBox1->Handle,GWL_STYLE);
SetWindowLongA(ListBox1->Handle,GWL_STYLE,iStyle&(~WS_VSCROLL));
ListBox1->Width=ListBox1->Width+1;
ListBox1->Width=ListBox1->Width-1;
}
//---------------------------------------------------------------------------
//다시 세로 scrollbar나타나게 하기
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int iStyle=GetWindowLongA(ListBox1->Handle,GWL_STYLE);
SetWindowLongA(ListBox1->Handle,GWL_STYLE,iStyle | WS_VSCROLL);
ListBox1->Width=ListBox1->Width+1;
ListBox1->Width=ListBox1->Width-1;
}
//---------------------------------------------------------------------------
그럼..
일월영 님이 쓰신 글 :
: 안녕하세요~
:
: 처음 글을 올리네요^^;; 매번 많은 정보를 얻어가고 있지만
:
: 정작 제가 글을 올리게 될줄을 몰랐습니다.
:
: 다름이 아니라 리스트 박스에 많은 양의 자료를 추가시키면 세로 스크롤바가 생기는데
:
: 이 스크롤바를 없애는 방법을 알고 싶습니다.
:
: 고수님들 알려주세요 ㅜㅜ
:
: 몇일째 이것만 갖고 고민을 하니 머리가 너무 아프네요 ㅜㅜ
|