不修改forms.pas单元就可以去掉MDI窗口的滚动条

关于如何去掉MDI主窗体的滚动条的方法,很多都是去修改forms.pas单元,可以达到这样的效果,但是发现一个问题,我的项目是用BPL模式开发的,这样的话去修改forms.pas单元就没有作用了,于是上网找了很久,发现有一部份代码可以在不修改pas的源码情况下去掉MDI主窗体的滚动条,现发到盒子上,以便以后方便查找.

在MDI主窗体中如下代码:

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;
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

martian6125

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值