#include "myWin.h" static POINT VLUP, VLDOWN,VLDCLK, VRUP, VRDOWN,VRDCLK, VMOVE, NCHIT; void procLButtonUp(HWND hw, WPARAM wp, LPARAM lp){ VLUP.x=LOWORD(lp); VLUP.y=HIWORD(lp); InvalidateRect(hw,NULL, TRUE); } void procLButtonDown(HWND hw, WPARAM wp, LPARAM lp){ VLDOWN.x=LOWORD(lp); VLDOWN.y=HIWORD(lp); InvalidateRect(hw,NULL, TRUE); } void procLButtonDblClk(HWND hw, WPARAM wp, LPARAM lp){ VLDCLK.x=LOWORD(lp); VLDCLK.y=HIWORD(lp); InvalidateRect(hw,NULL, TRUE); } void procRButtonUp(HWND hw, WPARAM wp, LPARAM lp){ VRUP.x=LOWORD(lp); VRUP.y=HIWORD(lp); InvalidateRect(hw,NULL, TRUE); } void procRButtonDown(HWND hw, WPARAM wp, LPARAM lp){ VRDOWN.x=LOWORD(lp); VRDOWN.y=HIWORD(lp); InvalidateRect(hw,NULL, TRUE); } void procRButtonDblClk(HWND hw, WPARAM wp, LPARAM lp){ VRDCLK.x=LOWORD(lp); VRDCLK.y=HIWORD(lp); InvalidateRect(hw,NULL, TRUE); } void procMouseMove(HWND hw, WPARAM wp, LPARAM lp){ VMOVE.x=LOWORD(lp); VMOVE.y=HIWORD(lp); InvalidateRect(hw,NULL, TRUE); } void procNCHitTest(HWND hw, WPARAM wp, LPARAM lp){ NCHIT.x=LOWORD(lp); NCHIT.y=HIWORD(lp); InvalidateRect(hw,NULL, TRUE); } void outStr(HDC hdc, int X, int Y, TCHAR S[] , POINT P){ TextOut(hdc, X,Y,S,lstrlen(S)); TCHAR str[256]; wsprintf(str,TEXT("x = %d, y = %d"), P.x, P.y); TextOut(hdc, X + 170, Y,str,lstrlen(str)); } void procPaint(HWND hw, WPARAM wp, LPARAM lp){//ボタンクリック TCHAR str[256]; PAINTSTRUCT ps; HDC hdc=BeginPaint(hw, &ps); outStr(hdc, 10, 10, TEXT("L Button Up" ), VLUP ); outStr(hdc, 10, 30, TEXT("L Button Down" ), VLDOWN); outStr(hdc, 10, 50, TEXT("L Button Double Click"), VLDCLK); outStr(hdc, 10, 80, TEXT("R Button Up" ), VRUP ); outStr(hdc, 10, 100, TEXT("R Button Down" ), VRDOWN); outStr(hdc, 10, 120, TEXT("R Button Double Click"), VRDCLK); outStr(hdc, 10, 150, TEXT("Mouse Move" ), VMOVE ); outStr(hdc, 10, 180, TEXT("Not Client Hit" ), NCHIT ); EndPaint(hw, &ps); } LRESULT CALLBACK WndProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp){ switch(msg){ case WM_DESTROY : PostQuitMessage(0) ; return 0; case WM_PAINT : procPaint(hw, wp, lp) ; return 0; case WM_LBUTTONUP : procLButtonUp(hw, wp, lp); return 0; case WM_LBUTTONDOWN : procLButtonDown(hw, wp, lp); return 0; case WM_LBUTTONDBLCLK : procLButtonDblClk(hw, wp, lp); return 0; case WM_RBUTTONUP : procRButtonUp(hw, wp, lp); return 0; case WM_RBUTTONDOWN : procRButtonDown(hw, wp, lp); return 0; case WM_RBUTTONDBLCLK : procRButtonDblClk(hw, wp, lp); return 0; case WM_MOUSEMOVE : procMouseMove(hw, wp, lp); break; case WM_NCHITTEST:procNCHitTest(hw, wp, lp); break; } return DefWindowProc(hw, msg, wp, lp); }