本文整理自网络,侵删。
新建一个控制台程序, 贴入下面代码即可运行:program Project1;
uses Windows, Messages;
{等待调用的过程, 用于在窗体上绘制文本}Procedure OnPaint(h: HDC);const s = 'CodeGear Delphi 2007';begin TextOut(h, 10, 10, PChar(s), Length(s));end;
{窗口回调过程}function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall;var Handle: HDC; ps: PAINTSTRUCT;begin case msg of WM_PAINT: begin Handle := BeginPaint(wnd, ps); OnPaint(Handle); EndPaint(wnd, ps); result := 0; end; WM_DESTROY: begin PostQuitMessage(0); result := 0; end; else Result := DefWindowProc(wnd, msg, wParam, lParam); end;end;
{主程序}var hWnd : THandle; Msg : TMsg; MyWndClass : TWndClass;begin MyWndClass.style := CS_HREDRAW or CS_VREDRAW; MyWndClass.lpfnWndProc := @WndProc; MyWndClass.cbClsExtra := 0; MyWndClass.cbWndExtra := 0; MyWndClass.hInstance := HInstance; MyWndClass.hIcon := LoadIcon(0, IDI_QUESTION); MyWndClass.hCursor := LoadCursor(0, IDC_ARROW); MyWndClass.hbrBackground := HBRUSH(GetStockObject(WHITE_BRUSH)); MyWndClass.lpszMenuName := nil; MyWndClass.lpszClassName := 'MyWindowClass';
RegisterClass(MyWndClass);
hWnd := CreateWindow('MyWindowClass', '这是窗口标题', WS_OVERLAPPEDWINDOW, 100, 100, 250, 150, 0, 0, HInstance, nil);
ShowWindow(hWnd, SW_SHOWNORMAL); UpdateWindow(hWnd);
while(GetMessage(Msg, 0, 0, 0)) do begin TranslateMessage(Msg); DispatchMessage(Msg); end;end.
相关阅读 >>
Delphi 跨平台的,在fmx中读取icon文件的每一帧到bitmap
如何用Delphi实现windows xp中“本地连接”的启用和禁用
更多相关阅读请进入《Delphi》频道 >>