文档详情

Borland C++Builder响应Windows消息机制的分析.doc

发布:2018-03-15约5.78千字共9页下载文档
文本预览下载声明
Borland C++Builder响应Windows消息机制的分析   摘要:Windows是一套以消息驱动的操作系统。C++ Builder的可视化组件库 (VCL)提供了对大多数Windows消息的处理机制,程序开发人员在一般情况下无需理会Windows消息的细节。然而作为一个windows程序开发者,实有必要掌握C++Builder中如何进行Windows消息的捕获。该文阐述了Windows消息的概念,对C++Builder的消息映射机制进行了系统分析,同时结合一个实际范例,仔细说明了其中之技巧。   关键词:Windows;Borland C++ Builder;Windows 消息; 消息映射机制   中图分类号:TP316文献标识码:A文章编号:1009-3044(2010)09-2150-02   Analysis of the Response mechanism of Windows Message in Borland C++ Builder   TANG Yan-hua   (Hunan Urban Professional College, Changsha 410137, China)   Abstract: Windows is a operating system which is based on message driver. Visual Component Library (VCL) in C++ Builder supplies the process mechanism to the most of Windows messages and the programmer neednt pay attention to the detail of Windows message in general. However, it is necessary to hold Windowsmessagesresponsemechanismin C++ Builder. In this paper, The conception of Windows message and the C++ Builder message map mechanism is introduced, at one time, the technique is explained with a example.   Key words: Windows; Borland C++ Builder; Windows message; message map mechanism   Windows是一套以消息驱动的操作系统,C++ Builder的VCL提供了对大多数Windows消息的处理机制,程序设计者在一般情况下无需理会Windows消息的细节。然而由于Windows事件驱动方式主要基于消息机制,因此在遇到C++Builder没有定义的Windows消息时,如何进行捕获Windows消息仍然是C++Builder程序员不可或缺的能力。 不可否认,C++Builder所提供的事件处理能力已具备了某一程度的完备性,然而我们也必须承认,VCL仍有不尽完美之处。例如程序员自定义消息的处理、Winsock消息的处理及一些Windows消息如WM_NC**** 系列的消息都是C++Builder的控件所未包含的。本文将讨论如何以C++Builder来处理Windows消息,并使用这一技术,实现在一般VCL控件所无法做到的功能。   1 何谓Windows消息   Windows 程序设计是一种以事件为驱动方式的的程序设计,而事件又主要基于消息处理机制。当用户需要完成某种功能时,需要调用OS的某种支持,然后OS将用户的需要包装成消息,并投入到消息队列中,最后应用程序从消息队列中取走消息并进行响应。所谓消息是由Windows操作系统送往程序的事件。它是系统中各个控件沟通的方式,举例来说,当移动鼠标、按下鼠标键、改变窗体大小时,Windows都会送出消息以通知程序。当然,为了要辨别事件的内容,Windows系统中定义了许多的消息,如WM_PAINT,WM_CHAR等等。当事件发生时,Windows会判断该事件必须由哪个程序接收,然后将事件以消息的方式送往程序的窗体中。虽然在Windows系统中包含了数以百计的事件,但是操作系统并没有为各个事件设计不同的消息结构,而是以一个一般性的结构来描述消息,这个结构在C++Builder就称为TMessage。当然,随着事件的不同,对于消息的解释也有所不同,在C++Builder中也为各种常用的消息定义了专门的结构,你可以直接使用它们来解释消息。这些消息定义在C++Builde
显示全部
相似文档