[Quote title=""] Function ClientWindowProc( wnd: HWND; msg: Cardinal; wparam, lparam: Integer ): Integer; stdcall; Var pUserdata: Pointer; Begin pUserdata:= Pointer( GetWindowLong( wnd, GWL_USERDATA )); Case msg of WM_NCCALCSIZE: Begin If (GetWindowLong( wnd, GWL_STYLE ) and (WS_HSCROLL or WS_VSCROLL)) <> 0 Then SetWindowLong( wnd, GWL_STYLE, GetWindowLong(wnd, GWL_STYLE) and not (WS_HSCROLL or WS_VSCROLL)); End; End; Result := CallWindowProc(pUserdata, wnd, msg, wparam, lparam ); end;
procedure TForm1.FormCreate(Sender: TObject); begin // ShowScrollBar(mainform.clienthandle, SB_BOTH, false ); If ClientHandle <> 0 Then Begin If GetWindowLong( ClientHandle, GWL_USERDATA ) <> 0 Then Exit; // 加上回调句柄 SetWindowLong( ClientHandle, GWL_USERDATA, SetWindowLong( ClientHandle, GWL_WNDPROC, integer( @ClientWindowProc))); End; [/Quote]