#include char szAppName[] = "Hello"; long FAR PASCAL WndProc(HWND, UINT, WPARAM, LPARAM); int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow) { HWND hwnd; MSG msg; WNDCLASS wndclass; if(!hPrevInst) { wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; RegisterClass(&wndclass); } hwnd = CreateWindow(szAppName, szAppName, WS_HSCROLL | WS_VSCROLL | WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 600, 400, NULL, NULL, hInstance, NULL); ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } long FAR PASCAL WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; RECT rect; SIZE size; PAINTSTRUCT ps; switch(message) { case WM_PAINT: hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rect); InflateRect(&rect, -10, -10); if( !IsRectEmpty( &rect ) ) { GetTextExtentPoint32(hdc, szAppName, strlen(szAppName), &size); SelectObject(hdc, GetStockObject(LTGRAY_BRUSH)); Rectangle(hdc, rect.left, rect.top, rect.right, rect.bottom); rect.left = (rect.right + rect.left - size.cx) / 2; rect.top = (rect.bottom + rect.top - size.cy) / 2; SetBkMode(hdc, TRANSPARENT); TextOut(hdc, rect.left, rect.top, szAppName, strlen(szAppName) ); } EndPaint(hwnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); }