zoukankan      html  css  js  c++  java
  • 不修改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;

  • 相关阅读:
    27、驱动调试之修改系统时钟中断定位系统僵死问题
    25、驱动调试之打印到proc虚拟文件
    24、驱动调试之printk
    23、uevent/hotplug热拔插机制
    22、DMA驱动程序框架
    21、IIS声卡驱动程序
    20、RTC驱动程序
    ZOJ
    HDU-4272 LianLianKan (dfs)
    UVA-624 CD (01背包+路径记忆)
  • 原文地址:https://www.cnblogs.com/martian6125/p/9631291.html
Copyright © 2011-2022 走看看