// Windows programming
#include <windows.h>
#include <string.h>
// Plottype
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
#pragma argsused
// Entry point
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR cmdLine, int cmdShow)
{
char* className = "Windows98";
// Class
WNDCLASS wc;
wc.style = CS_VREDRAW|CS_HREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = className;
RegisterClass(&wc);
// Create Window
HWND toplevel = CreateWindowEx(
NULL,
className,
"Sample",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
180,
100,
NULL,
NULL,
hInstance,
NULL
);
// Show Window
ShowWindow(toplevel, cmdShow);
// Update Window
UpdateWindow(toplevel);
// Message loop
MSG msg;
while(GetMessage(&msg, NULL, NULL, NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
// Window procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_PAINT:
{
char* text = "Hello Windows";
//
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
//
TextOut(hdc, 25, 25, text, strlen(text));
//
EndPaint(hwnd, &ps);
}
break;
case WM_DESTROY :
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return NULL;
}