Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1259780
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类: C/C++

2012-02-17 17:41:38

 

  1. 一直都在自学编程,就是找段别人的代码看上一星期,可是,这个看不懂啊,
  2. 就是WM_PAINT和WM_TIMER不懂,似乎与计时器有关,不知道,各位路过的好心大大们帮帮我吧~还有WM_是什么意思啊?
  3. 程序如下
  4.  switch(message)
  5.  {
  6.   case WM_PAINT:
  7.   {
  8.    DrwFram(hwnd);
  9.    MyWords(hwnd);
  10.    InitTable();
  11.    SetFirstSp(hwnd);
  12.    SetTimer(hwnd,fTimer,TimItr,NULL);
  13.    GetNextS(hwnd);
  14.    break;
  15.   }
  16.   case WM_KEYDOWN:
  17.   {
  18.    MoveLR(hwnd,message,wParam,lParam);
  19.    break;
  20.   }
  21.   case WM_TIMER:
  22.   {
  23.    MvPicture(hwnd);
  24.    break;
  25.   }
  26.   case WM_DESTROY:
  27.   {
  28.    KillTimer(hwnd,fTimer);
  29.    PostQuitMessage(0);
  30.    break;
  31.   }
  32.   default:break;
  33.  }

  34. ==============================
  35. WM_XXX事实上一个数值。它表示系统发给应用程序的消息。

  36. 应用程序应当处理这些消息,方法是GetMessage,从队列中取一个消息并且将这个消息从队列中删除。(另外有一个PeekMessage只查看不删除)。

  37. 然后用一个switch来区分这些消息:
  38. switch( msg )
  39. {
  40.     case WM_PAINT:
  41.          .....
  42.          break;
  43.     case WM_MOUSEMOVE:
  44.          break;
  45.          ...
  46.     ....
  47. }

  48. 常见的消息:
  49. WM_PAINT: 当窗口需要重绘时,Windows会向应用程序窗口发送该消息。比如另外一个窗口覆盖了你的窗口,然后你又把它移走了。那么你的窗口因为又露出来了,就需要重绘。

  50. WM_TIMER:定时器消息,当你用SetTimer来设置一个定时器时,假设你设置的时间间隔是1秒,那么你就会每隔1秒收到一个WM_TIMER消息。你对这个消息加以处理,就可以实现每隔1秒运行某段代码了。

  51. WM_KEYDOWN:当你的窗口处于活动状态并且用户按下了键盘上的某个键时,你就会收到这个消息。

  52. WM_MOUSEMOVE:当用户在你的窗口上面移动鼠标时,你就会收到这个消息。

  53. WM_LBUTTONDOWN:当用户点击鼠标左键时.....

  54. WM_RBUTTONDOWN:当用户右击鼠标时。。。。

  55. WM_LBUTTONUP:当用户抬起鼠标左键时。它总是和WM_LBUTTONDOWN配对出现。

  56. WM_RBUTTONUP:当鼠标右键抬起时。。。。
阅读(1555) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~