Many pelles functions are not documented or documented so poorly even a dogpile search comes up empty. There has got to be a way to learn this stuff. For example
****************************************************************************
* *
* File : main.c *
* *
* Purpose : Generic Win32 application. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/
#define WIN32_LEAN_AND_MEAN /* speed up compilations */
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <tchar.h>
#include "main.h"
#define NELEMS(a) (sizeof(a) / sizeof((a)[0]))
/** Prototypes **************************************************************/
static LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
static void Main_OnPaint(HWND);
static void Main_OnCommand(HWND, int, HWND, UINT);
static void Main_OnDestroy(HWND);
static LRESULT WINAPI AboutDlgProc(HWND, UINT, WPARAM, LPARAM);
/** Global variables ********************************************************/
static HANDLE ghInstance;
/****************************************************************************
* *
* Function: WinMain *
* *
* Purpose : Initialize the application. Register a window class, *
* create and display the main window and enter the *
* message loop. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
INITCOMMONCONTROLSEX icc;
WNDCLASS wc;
HWND hwnd;
MSG msg;
ghInstance = hInstance;
/* Initialize common controls. Also needed for MANIFEST's */
/*
* TODO: set the ICC_???_CLASSES that you need.
*/
icc.dwSize = sizeof(icc);
icc.dwICC = ICC_WIN95_CLASSES /*|ICC_COOL_CLASSES|ICC_DATE_CLASSES|ICC_PAGESCROLLER_CLASS|ICC_USEREX_CLASSES|... */;
InitCommonControlsEx(&icc);
/* Load Rich Edit control support */
/*
* TODO: uncomment one of the lines below, if you are using a Rich Edit control.
*/
// LoadLibrary(_T("riched32.dll")); // Rich Edit v1.0
// LoadLibrary(_T("riched20.dll")); // Rich Edit v2.0, v3.0
/*
* TODO: uncomment line below, if you are using the Network Address control (Windows Vista+).
*/
// InitNetworkAddressControl();
/* Register the main window class */
wc.lpszClassName = _T("prog113Class");
wc.lpfnWndProc = MainWndProc;
wc.style = CS_OWNDC|CS_VREDRAW|CS_HREDRAW;
wc.hInstance = ghInstance;
wc.hIcon = LoadIcon(ghInstance, MAKEINTRESOURCE(IDR_ICO_MAIN));
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MNU_MAIN);
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
if (!RegisterClass(&wc))
return 1;
/* Create the main window */
hwnd = CreateWindow(_T("prog113Class"),
_T("prog113 Program"),
WS_OVERLAPPEDWINDOW|WS_HSCROLL|WS_VSCROLL,
0,
0,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
ghInstance,
NULL
);
if (!hwnd) return 1;
/* Show and paint the main window */
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
/* Pump messages until we are done */
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
/****************************************************************************
* *
* Function: MainWndProc *
* *
* Purpose : Process application messages. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/
static LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
HANDLE_MSG(hwnd, WM_PAINT, Main_OnPaint);
HANDLE_MSG(hwnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hwnd, WM_DESTROY, Main_OnDestroy);
/* TODO: enter more messages here */
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
}
/****************************************************************************
* *
* Function: Main_OnPaint *
* *
* Purpose : Process a WM_PAINT message. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/
static void Main_OnPaint(HWND hwnd)
{
PAINTSTRUCT ps;
This was made up by the ide but what does it mean?