Code:
#include <windows.h>
#include <windowsx.h>
#pragma region Definitions
#define inputNumber 157
#define outputNumber 158
#define calculateButton 159
#pragma endregion
// function prototypes
void InitApp(HINSTANCE);
LRESULT APIENTRY MainProc(HWND,UINT,WPARAM,LPARAM);
// variables
#pragma region Handles
HWND hwnd;
HWND inputText;
HWND outputText;
HWND calculateButtonH;
#pragma endregion
HINSTANCE g_hInst;
// winmain entry point
int APIENTRY WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR line,int CmdShow)
{
MSG msg;
g_hInst = hInst;
InitApp(hInst);
while(GetMessage(&msg,0,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
// initlize application
void InitApp(HINSTANCE hInst)
{
WNDCLASS wc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH);
wc.hInstance = hInst;
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.lpfnWndProc = (WNDPROC) MainProc;
wc.lpszClassName = "Main";
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wc);
hwnd = CreateWindow("Main","Unit Converter",WS_OVERLAPPEDWINDOW,200,200,800,600,0,0,hInst,0);
ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);
}
// Main Process CallBack Function
LRESULT APIENTRY MainProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
LPSTR input;
LPCSTR output;
int inputType, outputType;
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_CREATE:
{
inputText = CreateWindow("Edit","",WS_CHILD | WS_VISIBLE | ES_LEFT,100,380,70,20,hwnd,(HMENU)inputNumber,g_hInst,0);
outputText = CreateWindow("Edit","",WS_CHILD | WS_VISIBLE | ES_LEFT,400,380,70,20,hwnd,(HMENU)outputNumber,g_hInst,0);
calculateButtonH = CreateWindow("Button","Calculate",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,600,68,80,30,hwnd,(HMENU)calculateButton,g_hInst,0);
}
break;
case WM_COMMAND:
{
switch(HIWORD(wParam))
{
case BN_CLICKED:
switch(LOWORD(wParam))
{
case calculateButton:
output = Button_GetText(inputText,&input,sizeof(input));
Button_SetText(outputText,&output);
break;
}
}
}
break;
default: return DefWindowProc(hwnd,msg,wParam,lParam);
}
return 0;
}
It's greatly trimmed to take out the radio button definitions, handle declarations, and the code for the creation of the buttons themselves.