zoukankan      html  css  js  c++  java
  • 子类化窗口控件的窗口过程(系统级替换,与直接替换控件的WndProc方法不是一回事)

    要说灵活性,自然是比不上Delphi自带的覆盖WndProc,或者替换WndProc方法。

    unit   Unit1;  
       
      interface  
       
      uses  
          Windows,   Messages,   SysUtils,   Classes,   Controls,   Forms,   Dialogs,   StdCtrls;  
       
      type  
          TForm1   =   class(TForm)  
              Edit1:   TEdit;  
              procedure   FormCreate(Sender:   TObject);  
          private  
              FOldWndProc,   FNewWndProc:   TFarProc;  
              procedure   WindowProc(var   Message:   TMessage);  
          end;  
       
      var  
          Form1:   TForm1;  
       
      implementation  
       
      {$R   *.dfm}  
       
      procedure   TForm1.WindowProc(var   Message:   TMessage);  
      begin  
          Message.Result   :=   CallWindowProc(FOldWndProc,   Edit1.Handle,   Message.Msg,  
                Message.WParam,   Message.LParam);  
      end;  
       
      procedure   TForm1.FormCreate(Sender:   TObject);  
      begin  
          FNewWndProc   :=   MakeObjectInstance(WindowProc);  
          FOldWndProc   :=   Pointer(GetWindowLong(Edit1.Handle,   GWL_WNDPROC));  
          SetWindowLong(Edit1.Handle,   GWL_WNDPROC,   LongInt(FNewWndProc));  
      end;  
       
      end.
     
    // 其它消息做默认处理
      Result := DefWindowProc(hWnd, uMsg, wParam, lParam);

    参考:http://www.cnblogs.com/key-ok/p/3380556.html

  • 相关阅读:
    jQuery——能够编辑的表格
    最简单的Windows程序
    数据库分页查询
    Srvctl命令具体解释(10g)
    AT3912 Antennas on Tree
    使用GenericServlet实例
    Servlet接口、GenericServlet类、HttpServlet类
    Servlet简介
    MVC
    为JSP写的一套核心标签
  • 原文地址:https://www.cnblogs.com/findumars/p/4748599.html
Copyright © 2011-2022 走看看