|  | #include <windows.h> | 
|  |  | 
|  | 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); | 
|  | } | 
|  |  |