LRESULT CALLBACK WndProc(HWND hWindow,UINT msg,WPARAM wParam,LPARAM lParam)
{
//this switch statement processes the message sent, here you can program the code
//for each type of message's reaction
switch(msg)
{
//WM_PAINT is a render command
case WM_PAINT:
ValidateRect( hWindow, NULL );
return 0;
break;
//WM_LBUTTONDOWN is a message send every time the left mouse button is clicked over the Client area
case WM_TIMER:
switch(wParam)
{
case Refresh:
Render(hWindow);
break;
}
return 0;
break;
case WM_LBUTTONDOWN:
//m_BackGround->SetScrollVelocity(Vector2D(-m_BackGround->GetScrollVelocity().x,0));
return 0;
break;
//the WM_DESTROY message is the message sent when the program is going to terminate
case WM_DESTROY:
DestroyWindow( hWindow );
m_running = false;
PostQuitMessage(0);
return 0;
break;
case WM_MOUSEMOVE:
float xPos = (float)GET_X_LPARAM(lParam);
float yPos = (float)GET_Y_LPARAM(lParam);
m_game->scene->SetMousePosition(xPos, yPos);
}
//it returns default processing for any window message that an switch statement does not process
return DefWindowProc(hWindow,msg,wParam,lParam);
}
TFJFU1VMVCBDQUxMQkFDSyBXbmRQcm9jKEhXTkQgaFdpbmRvdyxVSU5UIG1zZyxXUEFSQU0gd1BhcmFtLExQQVJBTSBsUGFyYW0pCnsKCS8vdGhpcyBzd2l0Y2ggc3RhdGVtZW50IHByb2Nlc3NlcyB0aGUgbWVzc2FnZSBzZW50LCBoZXJlIHlvdSBjYW4gcHJvZ3JhbSB0aGUgY29kZQoJLy9mb3IgZWFjaCB0eXBlIG9mIG1lc3NhZ2UncyByZWFjdGlvbgoJc3dpdGNoKG1zZykKCXsKCQkvL1dNX1BBSU5UIGlzIGEgcmVuZGVyIGNvbW1hbmQKCQljYXNlIFdNX1BBSU5UOgoJCQlWYWxpZGF0ZVJlY3QoIGhXaW5kb3csIE5VTEwgKTsKCQkJcmV0dXJuIDA7CgkJCWJyZWFrOwoJCS8vV01fTEJVVFRPTkRPV04gaXMgYSBtZXNzYWdlIHNlbmQgZXZlcnkgdGltZSB0aGUgbGVmdCBtb3VzZSBidXR0b24gaXMgY2xpY2tlZCBvdmVyIHRoZSBDbGllbnQgYXJlYQoJCWNhc2UgV01fVElNRVI6CgkJCXN3aXRjaCh3UGFyYW0pCgkJCXsKCQkJCWNhc2UgUmVmcmVzaDoKCQkJCQlSZW5kZXIoaFdpbmRvdyk7CgkJCQlicmVhazsKCQkJfQoJCQlyZXR1cm4gMDsKCQkJYnJlYWs7CgkJY2FzZSBXTV9MQlVUVE9ORE9XTjoKCQkJLy9tX0JhY2tHcm91bmQtPlNldFNjcm9sbFZlbG9jaXR5KFZlY3RvcjJEKC1tX0JhY2tHcm91bmQtPkdldFNjcm9sbFZlbG9jaXR5KCkueCwwKSk7CgkJCXJldHVybiAwOwoJCQlicmVhazsKCQkvL3RoZSBXTV9ERVNUUk9ZIG1lc3NhZ2UgaXMgdGhlIG1lc3NhZ2Ugc2VudCB3aGVuIHRoZSBwcm9ncmFtIGlzIGdvaW5nIHRvIHRlcm1pbmF0ZQoJCWNhc2UgV01fREVTVFJPWToKCQkJRGVzdHJveVdpbmRvdyggaFdpbmRvdyApOwoJCQltX3J1bm5pbmcgPSBmYWxzZTsKCQkJUG9zdFF1aXRNZXNzYWdlKDApOwoJCQlyZXR1cm4gMDsKCQlicmVhazsKCQljYXNlIFdNX01PVVNFTU9WRToKCQkJZmxvYXQgeFBvcyA9IChmbG9hdClHRVRfWF9MUEFSQU0obFBhcmFtKTsgCgkJCWZsb2F0IHlQb3MgPSAoZmxvYXQpR0VUX1lfTFBBUkFNKGxQYXJhbSk7CgkJCW1fZ2FtZS0+c2NlbmUtPlNldE1vdXNlUG9zaXRpb24oeFBvcywgeVBvcyk7Cgl9CgkvL2l0IHJldHVybnMgZGVmYXVsdCBwcm9jZXNzaW5nIGZvciBhbnkgd2luZG93IG1lc3NhZ2UgdGhhdCBhbiBzd2l0Y2ggc3RhdGVtZW50IGRvZXMgbm90IHByb2Nlc3MKCXJldHVybiBEZWZXaW5kb3dQcm9jKGhXaW5kb3csbXNnLHdQYXJhbSxsUGFyYW0pOwp9Cg==