Created
December 18, 2014 23:11
-
-
Save jwasinger/12cd8958598d987cdaf7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <windows.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <tchar.h> | |
// Global variables | |
// The main window class name. | |
static TCHAR szWindowClass[] = _T("win32app"); | |
// The string that appears in the application's title bar. | |
static TCHAR szTitle[] = _T("Win32 Guided Tour Application"); | |
HINSTANCE hInst; | |
// Forward declarations of functions included in this code module: | |
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); | |
int WINAPI WinMain(HINSTANCE hInstance, | |
HINSTANCE hPrevInstance, | |
LPSTR lpCmdLine, | |
int nCmdShow) | |
{ | |
WNDCLASSEX wcex; | |
wcex.cbSize = sizeof(WNDCLASSEX); | |
wcex.style = CS_HREDRAW | CS_VREDRAW; | |
wcex.lpfnWndProc = WndProc; | |
wcex.cbClsExtra = 0; | |
wcex.cbWndExtra = 0; | |
wcex.hInstance = hInstance; | |
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION)); | |
wcex.hCursor = LoadCursor(NULL, IDC_ARROW); | |
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); | |
wcex.lpszMenuName = NULL; | |
wcex.lpszClassName = szWindowClass; | |
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION)); | |
if (!RegisterClassEx(&wcex)) | |
{ | |
MessageBox(NULL, | |
_T("Call to RegisterClassEx failed!"), | |
_T("Win32 Guided Tour"), | |
NULL); | |
return 1; | |
} | |
hInst = hInstance; // Store instance handle in our global variable | |
HWND hWnd = CreateWindow( | |
szWindowClass, | |
szTitle, | |
WS_OVERLAPPEDWINDOW, | |
CW_USEDEFAULT, CW_USEDEFAULT, | |
500, 100, | |
NULL, | |
NULL, | |
hInstance, | |
NULL | |
); | |
if (!hWnd) | |
{ | |
MessageBox(NULL, | |
_T("Call to CreateWindow failed!"), | |
_T("Win32 Guided Tour"), | |
NULL); | |
return 1; | |
} | |
ShowWindow(hWnd, | |
nCmdShow); | |
UpdateWindow(hWnd); | |
// Main message loop: | |
MSG msg; | |
while (GetMessage(&msg, NULL, 0, 0)) | |
{ | |
TranslateMessage(&msg); | |
DispatchMessage(&msg); | |
} | |
return (int) msg.wParam; | |
} | |
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) | |
{ | |
PAINTSTRUCT ps; | |
HDC hdc; | |
TCHAR greeting[] = _T("Hello, World!"); | |
switch (message) | |
{ | |
case WM_PAINT: | |
hdc = BeginPaint(hWnd, &ps); | |
// Here your application is laid out. | |
// For this introduction, we just print out "Hello, World!" | |
// in the top left corner. | |
TextOut(hdc, | |
5, 5, | |
greeting, _tcslen(greeting)); | |
// End application-specific layout section. | |
EndPaint(hWnd, &ps); | |
break; | |
case WM_DESTROY: | |
PostQuitMessage(0); | |
break; | |
default: | |
return DefWindowProc(hWnd, message, wParam, lParam); | |
break; | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment