📄 hookwin.pas
字号:
unit Hookwin;
uses
Windows,
MMSystem,
Messages;
var
WinClass: TWndClassA;
Inst, Handle: Integer;
Msg: TMsg;
AppName: PChar;
{ 定义WindowProc过程 }
function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;
var
hdc: Integer;
Rect: TRect;
ps: PAINTSTRUCT;
begin
case uMsg of
WM_CREATE : //在窗口建立时播放声音
PlaySound('TestSnd.wav', 0, SND_FILENAME + SND_ASYNC) ;
WM_PAINT :
begin //在窗口中央输入文字
hdc := BeginPaint (Handle, ps) ;
GetClientRect (Handle, Rect) ;
DrawText (hdc, 'Hello, Windows 95!', -1, Rect,
DT_SINGLELINE + DT_CENTER + DT_VCENTER) ;
EndPaint (Handle, ps) ;
end;
WM_DESTROY :
// PostQuitMessage(0) ; //这一句似乎不管用,要Halt才行
Halt;
end;
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
end;
begin
AppName := 'HelloWin';
{ 初始化窗体类 }
Inst := hInstance;
with WinClass do
begin
style := CS_HREDRAW + CS_VREDRAW;
lpfnWndProc := @WindowProc;
hInstance := Inst;
hbrBackground := GetStockObject (WHITE_BRUSH);
lpszClassname := AppName;
hCursor := LoadCursor(0, IDC_ARROW);
end;
RegisterClass(WinClass); //注册窗体类
{ 创建窗口 }
Handle := CreateWindow (AppName, // 窗体类名称
'The Hello Program', // 窗体标题
WS_OVERLAPPEDWINDOW, // 窗体风格
CW_USEDEFAULT, // 初始化窗体X座标
CW_USEDEFAULT, // 初始化窗体Y座标
CW_USEDEFAULT, // 初始化窗体X尺寸
CW_USEDEFAULT, // 初始化窗体Y尺寸
0, // 父窗体句柄
0, // 窗体菜单句柄
Inst, // 程序实例(instance)句柄
nil) ; // 其它参数
ShowWindow(Handle, SW_SHOWNORMAL);
UpdateWindow(Handle);
{ 消息循环 }
while(GetMessage(Msg, Handle, 0, 0)) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -