新建一个控制台程序, 贴入下面代码即可运行:
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.计划从这里出发, 了解更多底层的东西; 先弄明白这些代码吧!