win32学习心得

原创 2007年10月05日 15:28:00

 

 

一 外设消息

           win32系统中有一个系统系统消息队列,所有应用程序中都有一个消息队列。本处只讨论单线程应用程序,以下所说的应用程序均指单线程程序。一个应用程序可以有很多窗口,每个窗口都有自己的窗口过程函数,同一类窗口的窗口过程函数是一样的。

           消息处理的步骤为:外设的驱动程序将外设产生的事件包装成消息的形式放入系统消息队列中,系统在把系统消息队列中的消息放入应用程序的消息队列中。应用程序一般用函数Getmessage将消息从自己的消息队列中取出来,然后将消息交给函数DispatchMessage,此函数根据消息中提供的句柄,找到此句柄对应的窗口的窗口过程函数,窗口过程函数才是处理消息的最终代码。

          当发生键盘或鼠标事件时,键盘驱动只发一个击键消息,如果你想响应键盘事件,比如你想知道输入的字符到底是什么,那么你必须用函数Translatemessage处理击键消息(击键消息不提供字符击键的字符码),此函数被使用后,将给应用程序的消息队列放上一个其他消息,如WM_CHAR。相当于又转回去了,窗口的窗口过程函数现在通过处理WM_CHAR,就能得到具体的字符。

         同样的,鼠标事件的处理也不是一蹴而就的。鼠标事件发生时,驱动只发来一个WM_CHITTEST,如果你想处理发生在应用程序窗口上的事件,那么你必须先将WM_CHITTEST交给DefWindowProc处理,此函数根据WM_CHITTEST将事件发生的屏幕坐标转换为窗口坐标,然后将一个数值代表此坐标,返回给系统,系统处理此坐标以后重新给应用程序一个消息,窗口的过程函数在处理此消息。如果一个窗口不把WM_CHITTEST交给DefWindowProc处理就相当于此窗口对鼠标事件不会有任何反映。

         外设事件一定会被传入应用程序中,但应用程序可自己决定是否对这些事件做出处理。

         以上只是自己的理解,可能有不对的地方。

        

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

stm32学习心得

  • 2014-04-17 22:28
  • 232KB
  • 下载

stm32_usb_hid_学习心得

  • 2012-12-17 19:06
  • 71KB
  • 下载

Win32 IME 编程心得【转】

一些术语 IME: Input Method Editor/Engine, 输入法编辑器, 引擎IMM: Input Method Manager, 输入法管理器Comp: Compositio...

学习心得之ARM (STM32F207)

上一篇专门有提到MSC51的汇编,有MSC51的就应该有对应其它平台的汇编,现在详解ARM下的。 首先讲下两者的区别: 1.C51所用的指令集应用于所有X86架构的系统,被称为CISC(复杂指令集...

stm32f103学习心得

今年3月份开始接触意法半导体的STM32微控制器,实际操作的是STM32F103VET6,收到过ST免费赠送的STMF407开发板,可惜没有太多时间去研究了。     STM32系列基于嵌入式应用专...

STM32 CAN过滤器的学习心得

http://www.0658.org/viewthread16/3753.htm  关于STM32的CAN的过滤器 STM32普通型芯片的CAN有14组过滤器组,互联型有28组过滤器组. ...
  • stude
  • stude
  • 2011-09-20 09:06
  • 2450

STM32中断优先级--学习心得

刚开始学习STM32单片机时,对中断优先级的规则不是很明白,通过今天的学习,对这方面的内容有了新的了解,记录下来以便日后查看。 首先说一下STM32的中断: STM32有84个中断,包括16个内核...

Win32多线程编程学习心得

博客原文地址:http://jerkwisdom.github.io/study/thread/thread-Summary/ 此处博客不再更新。 为什么多线程? 其实不想写这一点,多线程并不一定...

WIM010-WIM学习笔记(十)——Win32_Account类属性(简单)

简单地获取WIN32_Account类的属性。 需要添加System.Management的引用。 由于涉及到安全的问题,运行结果就不截图了。。。 using System; using...

win32学习08.键盘鼠标定时器消息

键盘和鼠标的消息参数:/********************** LRESULT CALLBACK WindowProc( HWND hwnd, // handle to wi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)