为什么没有createwindow却可以响应windows的消息呢?
TTEST = class(TObject)
private
FWindowHandle: HWND;
procedure WndProc(var Msg: TMessage);
protected
public
constructor Create;
destructor Destroy; override;
end;
constructor TUSB.Create;
begin
FWindowHandle := AllocateHWnd(WndProc);
USBRegister;
end;
destructor TUSB.Destroy;
begin
DeallocateHWnd(FWindowHandle);
inherited Destroy;
end;
procedure TUSB.WndProc(var Msg: TMessage);
begin
if (Msg.Msg = WM_DEVICECHANGE) then
begin
try
//WMDeviceChange(Msg);
except
Application.HandleException(Self);
end;
end
else
Msg.Result := DefWindowProc(FWindowHandle, Msg.Msg, Msg.wParam, Msg.lParam);
end;
这个东东是从TObject继承下来的,为什么加了个 procedure WndProc(var Msg: TMessage);
就可以接收windows的消息了呢?我的理解好像是要有Window才可以处理消息循环的啊???
偶搞了6年的delphi了,看来是白学了。
private
FWindowHandle: HWND;
procedure WndProc(var Msg: TMessage);
protected
public
constructor Create;
destructor Destroy; override;
end;
constructor TUSB.Create;
begin
FWindowHandle := AllocateHWnd(WndProc);
USBRegister;
end;
destructor TUSB.Destroy;
begin
DeallocateHWnd(FWindowHandle);
inherited Destroy;
end;
procedure TUSB.WndProc(var Msg: TMessage);
begin
if (Msg.Msg = WM_DEVICECHANGE) then
begin
try
//WMDeviceChange(Msg);
except
Application.HandleException(Self);
end;
end
else
Msg.Result := DefWindowProc(FWindowHandle, Msg.Msg, Msg.wParam, Msg.lParam);
end;
这个东东是从TObject继承下来的,为什么加了个 procedure WndProc(var Msg: TMessage);
就可以接收windows的消息了呢?我的理解好像是要有Window才可以处理消息循环的啊???
偶搞了6年的delphi了,看来是白学了。
...全文
相关推荐
CreateWindow创建按钮、创建编辑框、改变鼠标状态
里面是CreateWindow创建按钮、创建编辑框、改变鼠标状态,教你如何创建简单的按钮、编辑框等,用7z解压
CreateWindow
初学VC++,用windows系统API来产生窗体。 希望跟大家一起学习了。
CreateWindow函数详解.doc )
CreateWindow函数详解.doc )CreateWindow函数详解.doc )CreateWindow函数详解.doc )CreateWindow函数详解.doc )CreateWindow函数详解.doc )CreateWindow函数详解.doc )CreateWindow函数详解.doc )CreateWindow函数详解.doc )
Windows消息机制.pdf
本PDF主要讲Windows系统的消息机制,讲如何通过windows系统提供的消息队列API,在WINDOWS上的应用内以及应用之间进行通信,欢迎下载
VB Windows消息50个经典API实例
VB Windows消息50个经典API实例


Windows SDK/API
