unit HookMain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type THookForm = class(TForm) SendBtn: TButton; GroupBox1: TGroupBox; LogList: TListBox; DoLog: TCheckBox; ExitBtn: TButton; B…
unit ScWndProc; interface uses Forms, Messages; const DDGM_FOOMSG = WM_USER; //自定义消息 implementation uses windows,sysutils,Dialogs; var WProc : Pointer; function NewWndProc(handle: hWnd; msg,wParam,lParam: LongInt): LongInt ; stdcall; begin if msg = D…
操作系统向应用程序发送一系列消息,如左键按下和左键抬起,应用程序将通过GetMessage等方法 Wndproc应用例子最终将消息提交到窗口过程(WndProc)指向一个应用程序定义的窗口过程的指针. 每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle)HWND,消息ID(Message ID)UINT,和两个消息参数(wParam, lParam)WPARAM.LPARAM,WndProc的第一个参数hWnd就是当前接收消息的…
win32窗口程序中如果需要给窗口过程函数传递自定义参数,可以通过LPCREATESTRUCT结构体中的lpCreateParams进行传递. 创建窗口实例函数: m_hWnd = CreateWindowEx(WS_EX_APPWINDOW, "FxWinAPP", "FxWinAPP", WS_OVERLAPPEDWINDOW, nPosX, nPosY, wndRect.right - wndRect.left, wndRect.bottom - wndRec…
ATL中采用了一种动态生成机器指令的方式进行窗口句柄与窗口对象进行关联,以是详细分析: CWindowImpl会在第一次调用Create时注册窗口类,该窗口类是的信息是在CWindowImpl的子类中使用 DECLARE_WND_CLASS定义的,该宏会为CWindowImpl的子类定义一个静态成员函数GetWndClassInfo, 该函数返回一个CWndClassInfo结构体,其中包含了WNDCLASSEX,用于指定该类的窗口类注册时所用的 WNDCLASSEX结构. 在DECLARE_W…
C#调用WINAPI及Windows窗口消息的发与送 最近在做一个餐饮项目(C#Winform),其中有一块是做点菜宝接口的对接,点菜宝的厂商提供了一个WX.exe的驱动程序,这个驱动程序无直接打开,只能通过自己的编写的接口程序调用和关闭,当时提供的例子一个VB和Delphi的用例,可是这块项目组的人都没有接触过,后来通过厂商了解到接口程序的开发原理是基于文本+消息机制的. 文本是说要用到文本文件的读和写, 消息是说要用到 Windows 窗口消息的发与收. 了解到这些后,我们就要去调用WinA…
窗口过程 让编程改变世界 Change the world by program 内容节选: Windows 把这样一个窗口分为了客户区和非客户区,这里边白色的这一大片就是客户区,而这些标题栏.菜单栏.滚动条以及最小化.最大化和关闭按钮这些都是属于非客户区,由系统管理非客户区的大部分内容,而客户区就交给我们的自己来绘制. 有些朋友一看到QQ.迅雷那些登录界面那么好看,都吵着我想要我想要.然后落实了一下却发现标题栏,边框这些几乎不能怎样去改动,于是就跑来问小甲鱼他们是怎么做到的呢? 窗口过程 我知…
原文地址:https://blog.csdn.net/zxxSsdsd/article/details/45504383 在win32程序的消息循环函数中  while (GetMessage (&msg, NULL, 0, 0))  {     TranslateMessage (&msg) ;     DispatchMessage (&msg) ;     }DispatchMessag()会调用WndProc()窗口过程函数,直到WndProc()处理完后DispatchM…
MSG结构体和WndProc窗口过程对于Windows编程非常重要,如果不了解它们,可以说就没有学会Windows编程. MSG结构体 MSG 结构体用来表示一条消息,各个字段的含义如下: typedef struct tagMSG{ HWND hwnd; //窗口句柄 UINT message; //消息类型 WPARAM wParam; //附加消息1 LPARAM lParam; //附加消息2 DWORD time; //消息被传递时候的时间 POINT pt; //消息被传递时光标在屏…
原文地址:http://blog.csdn.net/linzhengqun/article/details/1451088 从普通函数到对象方法 ------Windows窗口过程的面向对象封装 开始,由VirtualAlloc想起 我在查看VirtualAlloc这个API的时候,思绪竟然跳到另一个地方去了.那是以前阅读VCL源码时遗留下来的问题,Classes单元的MakeObjectInstance函数调用了VirtualAlloc,我甚是不解,为什么Delphi提供了那么多内存分配函数,…