Delphi 纯Pascal编写的程序,没有通过VCL

program WindowDemo;

uses

Windows,

Messages;

// 窗口函数,窗口接到消息时被Windows所调用

function WindowProc(hwnd : HWND; uMsg : Cardinal; wParam : WPARAM;

lParam : LPARAM) : LResult; stdcall;

begin

Result := 0;

case uMsg of

// 关闭窗口消息,当用户关闭窗口后,通知主消息循环结束程序

WM_CLOSE : PostMessage(hwnd, WM_QUIT, 0, 0);

// 鼠标左键按下消息

WM_LBUTTONDOWN : MessageBox(hwnd, 'Hello!', '和您打个招呼',

MB_ICONINFORMATION);

else

// 其他消息做默认处理

Result := DefWindowProc(hWnd, uMsg, wParam, lParam);

end;

end;

var

wndcls : WNDCLASS; // 窗口类的记录(结构)类型

hWnd : THandle;

Msg : tagMSG; // 消息类型

begin

wndcls.style := CS_DBLCLKS; // 允许窗口接受鼠标双击

wndcls.lpfnWndProc := @WindowProc; // 为窗口类指定窗口函数

wndcls.cbClsExtra := 0;

wndcls.cbWndExtra := 0;

wndcls.hInstance := hInstance;

wndcls.hIcon := 0;

wndcls.hCursor := LoadCursor(hInstance, 'IDC_ARROW');

wndcls.hbrBackground := COLOR_WINDOWFRAME;

wndcls.lpszMenuName := nil;

wndcls.lpszClassName := 'WindowClassDemo'; // 窗口类名称

// 注册窗口类

if RegisterClass(wndcls) = 0 then

Exit;

// 创建窗口

hWnd := CreateWindow(

'WindowClassDemo', // 窗口类名称

'WindowDemo', // 窗口名称

WS_BORDER or WS_CAPTION or WS_SYSMENU, // 窗口类型

Integer(CW_USEDEFAULT),

Integer(CW_USEDEFAULT),

Integer(CW_USEDEFAULT),

Integer(CW_USEDEFAULT),

0,

0,

hInstance,

nil

);

if hWnd = 0 then

Exit;

// 显示窗口

ShowWindow(hWnd, SW_SHOWNORMAL);

UpdateWindow(hWnd);

// 创建主消息循环,处理消息队列中的消息并分发

// 直至收到WM_QUIT消息,退出主消息循环,并结束程序

// WM_QUIT消息由PostMessage()函数发送

while GetMessage(Msg, hWnd, 0, 0) do

begin

TranslateMessage(Msg);

DispatchMessage(Msg);

end;

end.