捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
不修改forms.pas单元就可以去掉MDI窗口的滚动条
关键字:MDI 滚动条 去掉MDI窗口的滚动条
来 自:原创
平 台:Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2009/6/12
发布者:lovearvin 发布时间:2009/6/12
编辑器:DELPHI7 语  种:简体中文
分 类:窗体 下载浏览:441/10372
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
---无下载
关于如何去掉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;
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论6条
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表