Code:
#include <windows.h>
#include "resource.h"
#include "ball.h"
#include "createmask.h"
#include "drawball.h"
#include <cstdio>
void MainFunc(HWND hWnd)
{
HDC hDC = GetDC(hWnd);
RECT rcClient;
GetClientRect(hWnd, &rcClient);
DrawBall(hWnd, &rcClient);
//CheckWallHit(&rcClient);
ball.Update();
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch(Msg)
{
case WM_CREATE:
{
BITMAP bm;
Ball = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BALL));
Ballmask = CreateBitmapMask(Ball, RGB(255,0,255));
GetObject(Ball, sizeof(bm), &bm);
ball.width = bm.bmWidth;
ball.height= bm.bmHeight;
ball.dx = 1;
ball.dy = 1;
ball.lastx = 4;
ball.lasty = 4;
ball.x = 5;
ball.y = 5;
ball.speed = 1;
}
break;
case WM_CLOSE:
{
DestroyWindow(hWnd);
}
break;
case WM_DESTROY:
{
//Delete all variables
DeleteObject(Ball);
DeleteObject(Ballmask);
//DeleteDC(hDC);
PostQuitMessage(0);
}
break;
case WM_PAINT:
{
PAINTSTRUCT ps;
RECT rcClient;
HDC hDC = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rcClient);
EndPaint(hWnd, &ps);
}
break;
case WM_COMMAND:
{
switch(wParam)
{
case ID_FILE_EXIT:
PostQuitMessage(0);
break;
}
}
break;
default:
{
return DefWindowProc(hWnd, Msg, wParam, lParam);
}
break;
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;
MSG Msg;
HWND hWnd;
wc.cbClsExtra = 0;
wc.cbSize = sizeof(WNDCLASSEX);
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON));
wc.hIconSm = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON));
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = "Window Class";
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MYMENU);
wc.style = 0;
if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Windows registration failed!", "Error!", MB_ICONEXCLAMATION);
return 0;
}
hWnd = CreateWindowEx( WS_EX_CLIENTEDGE, "Window Class", "Lee's Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, hInstance, NULL);
/*HWND hwndListBox;
hwndListBox = CreateWindowEx(0, "LISTBOX", "", LBS_STANDARD |
WS_VISIBLE, 5, 5, 30, 50, hWnd, (HMENU)IDR_MYMENU,
GetModuleHandle(NULL), NULL);*/
if(hWnd == NULL)
{
MessageBox(NULL, "Window creation failed!", "Error!", MB_ICONEXCLAMATION);
return 0;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&Msg, hWnd, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
MainFunc(hWnd);
}
return 0;
}