Windows编程(4)|SDK键盘鼠标消息的简单处理

先看一下键盘按键按下时的消息

 

鼠标消息

 

下面是我对键盘和鼠标的一个消息处理过程,这只是消息处理函数部分

//窗口过程函数的实现(消息处理函数)
LRESULT CALLBACK MyWindowProc(
							  HWND hwnd,      // handle to window 窗口句柄
							  UINT uMsg,      // message identifier	消息标识
							  WPARAM wParam,  // first message parameter
							  LPARAM lParam   // second message parameter
							  )


{
   switch(uMsg)
   {
   case WM_PAINT:
	   {
		   TCHAR str[] = _T("这是一个Windows的SDK程序!");
		   HDC hDc;
		   PAINTSTRUCT  Ps;
		   hDc = BeginPaint(hwnd,&Ps); //获取设备环境句柄
		   SetTextColor(hDc,RGB(13,25,200)); //设置文本颜色
		   TextOut(hDc,0,0,str,18); //输出文字
		   EndPaint(hwnd,&Ps); //释放资源
		   break;
	   }
   case WM_CLOSE: //点击"X"按钮时发送此消息,使消息循环停止 
	   if(IDYES == MessageBox(hwnd,_T("是否要退出?"),_T("提示"),MB_YESNO))
	   {
          DestroyWindow(hwnd); //销毁窗口,发送WM_DESTROY消息,注意程序进程还没退出
	   }	   
	   break;
   case WM_DESTROY:
	   PostQuitMessage(NULL); //进程结束,完全退出程序
	   break;
   case WM_LBUTTONDOWN://鼠标按下消息
	   {
          if (wParam&MK_SHIFT)
          {
			  MessageBox(hwnd,_T("Shift和鼠标左键同时按下"),_T("消息框"),MB_OK);
          }
		  else
		   MessageBox(hwnd,_T("只是鼠标左键按下,Shift键没按下"),_T("消息框"),MB_OK);
	   }
	   
	   break;
   case WM_KEYDOWN://按键按下
	   {
		   switch(wParam)
		   {
		   case VK_END:
			   MessageBox(hwnd,_T("End键按下"),_T("消息框"),MB_OK);
               break;
		   }
	   };
	   break;
   case WM_KEYUP://释放按键
	   {
	       switch(wParam)
		   {
		   case VK_RETURN:
			   MessageBox(hwnd,_T("Enter键释放"),_T("消息框"),MB_OK);
			   break;
		   }
	   };
	   break;
   case WM_CHAR://按下一个字符按键
	   {
	     switch(wParam)
		 {
		 case 0x41:
			  MessageBox(hwnd,_T("A键按下"),_T("消息框"),MB_OK);
			  break;
		 }
         
	   };
	  
	   break;
   default:
	   return DefWindowProc(hwnd,uMsg,wParam,lParam); //处理未处理的消息
	   break;
   }

   return 0;

}


 

 

 

 

你可能感兴趣的:(Windows编程,windows,编程,callback,null)