#include "myWin.h"
static TCHAR str[128], strStat[128],strW[2];
void procKeyDown(HWND hw, WPARAM wp,LPARAM lp){
	if(wp==VK_SHIFT) lstrcpy(strStat,TEXT("シフトキーが押されました。"));
	wsprintf(str,TEXT("Key Down Character =%04Xh"),wp);
	InvalidateRect(hw,NULL,TRUE);
}
void procKeyUp(HWND hw, WPARAM wp,LPARAM lp){
	if(wp==VK_SHIFT) return ;
	if(GetKeyState(VK_SHIFT)<0)
		 lstrcpy(strStat,TEXT("シフトキーが押されています。"));
	else lstrcpy(strStat,TEXT("シフトキーは押されていません。"));
	InvalidateRect(hw,NULL,TRUE);
}
void procPaint(HWND hw, WPARAM wp,LPARAM lp){
	PAINTSTRUCT ps;	
	HDC hdc=BeginPaint(hw,&ps);
		TextOut(hdc,10, 10,str    ,lstrlen(str    ));
		TextOut(hdc,10, 60,strW   ,lstrlen(strW   ));
		TextOut(hdc,10,100,strStat,lstrlen(strStat));
	EndPaint(hw,&ps);
}
void procChar(HWND hw, WPARAM wp,LPARAM lp){
	strW[0]=wp; strW[1]=0; InvalidateRect(hw,NULL,TRUE);
}
LRESULT CALLBACK WndProc(HWND hw, UINT msg, WPARAM wp,LPARAM lp){
	switch(msg){
 	case WM_DESTROY : PostQuitMessage(0)   ; return 0;
	case WM_KEYDOWN : procKeyDown(hw,wp,lp); return 0;
	case WM_KEYUP   : procKeyUp  (hw,wp,lp); return 0;
	case WM_CHAR    : procChar   (hw,wp,lp); return 0;
	case WM_PAINT   : procPaint  (hw,wp,lp); return 0;
	}
	return DefWindowProc(hw,msg,wp,lp);
}