请问怎样才能使listview的滚动条在任何情况下都不出现?(50分)

  • 主题发起人 主题发起人 fosil
  • 开始时间 开始时间
F

fosil

Unregistered / Unconfirmed
GUEST, unregistred user!
我知道用showscrollbar(listview1.handle,SB_Both,false);
可以使滚动条不可见,但是当行数超出其能显示的行数时,
如果再动态添加项目或单击某一行,滚动条便又显示出来。
那位高手能帮我解决这个问题?
 
var
OldWndProc: Pointer;

function ClientWndProc(Wnd: HWnd; Msg: Cardinal; wParam, lParam: Integer): Integer; stdcall;
var
Style: Integer;
begin
if Msg = WM_NCCALCSIZE then
begin
Style := GetWindowLong(Wnd, GWL_STYLE);
if (Style and (WS_HSCROLL or WS_VSCROLL)) <> 0 then
SetWindowLong(Wnd, GWL_STYLE, Style and not (WS_HSCROLL or WS_VSCROLL));
end;
Result := CallWindowProc(OldWndProc,Wnd,Msg,wParam,lParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
OldWndProc := Pointer(GetWindowLong(ListView1.Handle,GWL_WNDPROC));
SetWindowLong(ListView1.Handle, GWL_WNDPROC,Integer(@ClientWndProc));
end;
 
老兄果然高明!佩服!
问题解决了,非常感谢!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部