第一步:
_InitExewindow调用exe的入口
_StartExe
InitUnits
第二步:
InitControls的initialization部分
TApplication.Create
AllocateHWnd
AllocateHWnd
MakeObjectInstance
StdWndProc
Instance^.FMethod := TMethod(AMethod);
AMethod==首次创建App时对应PopupControlProc
PMethod = ^TMethod;
`TMethod = record
Code, Data: Pointer;
public
class operator Equal(const Left, Right: TMethod): Boolean; inline;
class operator NotEqual(const Left, Right: TMethod): Boolean; inline;
class operator GreaterThan(const Left, Right: TMethod): Boolean; inline;
class operator GreaterThanOrEqual(const Left, Right: TMethod): Boolean; inline;
class operator LessThan(const Left, Right: TMethod): Boolean; inline;
class operator LessThanOrEqual(const Left, Right: TMethod): Boolean; inline;
end;`
第三部:
第四步:
Dispatch->TObject.Dispath->消息回调函数
DefaultHandler
原文:https://www.cnblogs.com/windlog/p/12354270.html