Welcome 微信登录

首页 / 软件开发 / C++

深度解析VC中的消息(上)

深度解析VC中的消息(上)

深度解析VC中的消息(上)2009-10-27消息是指什么?消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,...
深度解析VC中的消息(中)

深度解析VC中的消息(中)

深度解析VC中的消息(中)2009-10-27队列消息和非队列消息从消息的发送途径来看,消息可以分成2种:队列消息和非队列消息。消息队列由可以分成系统消息队列和线程消息队列。系统消息队列由Windows维护,线程消息队列则由每个GUI线程自己进行维护,为避免给non-GUI现成创建消息队列,所有线程产生时并没有消息队列,仅当线程第一次调用GDI函数数系统给线程创建一个消息队列。队列消息送到系统消息队列,然后到线程消息队列;非队列消息直接送给目的窗口过程。对...
深度解析VC中的消息(下)

深度解析VC中的消息(下)

深度解析VC中的消息(下)2009-10-27前面,我们分析了消息的基本理论和基本的函数及用法,接下来,我们将进一步讨论消息传递在MFC中的实现。MFC消息的处理实现方式初看MFC中的各种消息,以及在头脑中根深蒂固的C++的影响,我们可能很自然的就会想到利用C++的三大特性之一:虚拟机制来实现消息的传递,但是经过分析,我们看到事情并不是想我们想象的那样,在MFC中消息是通过一种所谓的消息映射机制来处理的。为什么呢?在潘爱民老师翻译的《Visual C++技...
临界区的互斥控制

临界区的互斥控制

临界区的互斥控制2009-11-01NeverNever一、前言我正在研究线程的通讯,无奈有关这方面的资料实在太少,没办法我只好去啃MSDN,但是MSDN好像说得也不太清楚。所以那我就写了这么一个例子,以望对学习多线程编程起到引玉抛砖的作用。有个易懂的例子学起来总是容易很多。近来我正在复习那几个排序算法,于是就把这些算法写到了这里来作为线程的例子。同时也对几个通用的排序算法思想作了一些说明。这个例子利用多线程使用不同的排序算法对数据进行排序,每一个线程使用...
多个定时器的使用

多个定时器的使用

多个定时器的使用2009-11-01xujian一、定时器的基本使用方法在编程时,会经常使用到定时器。使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。通常有两种方法来实现:发送WM_TIMER消息和调用应用程序定义的回调函数。1.1 用WM_TIMER来设置定时器先请看SetTimer这个API函数的原型UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UIN...
Win32环境下动态链接库(DLL)编程原理

Win32环境下动态链接库(DLL)编程原理

Win32环境下动态链接库(DLL)编程原理2009-11-01比较大应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。其中可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费;另一个缺点是,在编写大...
Windows SDK笔记(一):程序基本结构

Windows SDK笔记(一):程序基本结构

Windows SDK笔记(一):程序基本结构2009-11-10冯明德一、概述Windows程序具有相对固定的结构,对编写者而言,不需要书写整个过程,大部分过程由系统完成。程序中只要按一定的格式填写系统留给客户的那一小部分。所需要完成的有:窗口类的定义、窗口的建立、消息函数的书写、消息循环。二、消息处理函数Windows程序是事件驱动的,对于一个窗口,它的大部分例行维护是由系统维护的。没个窗口都有一个消息处理函数。在消息处理函数中,对传入的消息进行处理。...
Windows SDK笔记(二):在窗口上建立控件

Windows SDK笔记(二):在窗口上建立控件

Windows SDK笔记(二):在窗口上建立控件2009-11-10冯明德一、概述控件是子窗口,它们是系统已经定义好的窗口类,因此不需要注册、也不需要写消息处理函数。在主窗口得到WM_CREATE消息时,建立子窗口即可。二、实例//参数:窗口句柄,消息,消息参数,消息参数LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){//处理感兴趣的消息swi...
Windows SDK笔记(三):定制控件消息处理函数

Windows SDK笔记(三):定制控件消息处理函数

Windows SDK笔记(三):定制控件消息处理函数2009-11-10冯明德一、概述控件的消息处理函数是由系统定义好了的,通常情况下,不需要自己提供。但当需要对控件进行特殊控制时,可以提供一个消息处理函数,替换原来的消息处理函数。自己的处理完成后,再调用控件的缺省消息处理。二、相关函数1.窗口类的属性可以通过GetWindowLong和SetWindowLong进行读取和设置LONG GetWindowLong(HWND hWnd, // handle...
Windows SDK笔记(四):模式对话框

Windows SDK笔记(四):模式对话框

Windows SDK笔记(四):模式对话框2009-11-10冯明德一、概述对话框是一种特殊的窗口,它依据对话框模板资源而建立。它与一般的窗口有些不同,很多过程由系统完成了,虽然用户还是要提供一个消息处理函数,但在此消息处理函数中,不需要将不关心的消息交由缺省消息处理函数。实际上,调用缺省处理的过程又系统完成。二、对话框消息处理函数对话框也需要用户提供一个消息处理函数,但这个处理函数没有普通窗口的消息处理函数"权利大"。对话框是一种系...
Windows SDK笔记(五):非模式对话框

Windows SDK笔记(五):非模式对话框

Windows SDK笔记(五):非模式对话框2009-11-10冯明德一、概述使用DialgBox建立的对话框是“模式对话框”,只有关闭对话框后,程序的其他窗口才能进行操作。与此相对应,存在“非模式对话框”,对话框建立后,并不强制要求用户立即反应,而是与其他窗口同时接受用户操作。二、建立非模式对话框使用CreateDialg建立。可以在WinMain中建立主窗口后建立,对话框句柄保存备用。hDlgModel...
Windows SDK笔记(六):使用对话框资源建立窗口

Windows SDK笔记(六):使用对话框资源建立窗口

Windows SDK笔记(六):使用对话框资源建立窗口2009-11-10冯明德Ⅰ.使用对话框资源建立主窗口一、概述在Charles Petzold的书中,介绍了一种直接利用对话框资源建立主窗口的方法。使用这种方法,可以方便的在主窗口中安排子控件,而代码的其他部分跟用普通窗口时一样。我们知道,对话框是系统预先定义的“窗口类”,它有自己的窗口处理函数,我们自己写的对话框消息处理函数并不是真正的窗口消息处理函数。但我们可以在对话框模板...
Windows SDK笔记(七):创建MDI窗口

Windows SDK笔记(七):创建MDI窗口

Windows SDK笔记(七):创建MDI窗口2009-11-10冯明德一、概述MDI窗口包含一个框架窗口和若干子窗口。实际上,框架窗口本身是一个普通主窗口,不过它的客户去被一个特殊窗口覆盖。这个特殊窗口是系统预定义的“窗口类”,类名称为:"MDICLIENT"。它负责各个MDI子窗口的管理。二、窗口建立1.注册一个MDI框架窗口类,提供MDI框架窗口消息处理函数MDI框架窗口消息处理函数中,将未处理消息交由D...
ArcEngine鹰眼的实现

ArcEngine鹰眼的实现

ArcEngine鹰眼的实现2009-11-10 cnblogs miao大家都用过百度地图或者google地图吧,在它们主地图的右下角,有个小地图窗口,这就是鹰眼窗口。用鼠标拖动鹰眼里的小窗口,则主地图便移动到相应的位置。下面就介绍鹰眼的实现。鹰眼和主地图的互动,主要体现在两个方面:一是主地图的地图改变了,则鹰眼里的矩形框要移动到对应的位置,以指示当前地图在整个地图中的位置;二是鹰眼的矩形框移动了,则主地图中显示的地图要移动到相应的位置。ArcEngin...
一种可用于系统动态显示关于信息的方法

一种可用于系统动态显示关于信息的方法

一种可用于系统动态显示关于信息的方法2009-11-11介绍一般的系统帮助文件在显示关于帮助信息的时候大部分采用的方法是静态的形式将要显示的内容显示到界面上,由于这次担任项目开发,我总觉得那样太单调了,于是,在各个网站搜索后发现了一个很好的控件类(字模显示控件类),于是我进行扩充完成了一些动态显示的功能,完成后的各种要显示的帮助信息能够象放映电影一样的进行动态显示,效果蛮好的,现将制作过程合代码及演示效果写出来,希望对这个方面有研究或者寻求好方法的人有帮助...
用VC 6.0实现串行通信的三种方法

用VC 6.0实现串行通信的三种方法

用VC 6.0实现串行通信的三种方法2009-11-11王颖摘要:本文介绍了在Windows平台下串行通信的实现机制,讨论了根据不同的条件用Visual C++ 设计串行通信程序的三种方法,并结合实际,实现对温度数据的接收监控。---- 在实验室和工业应用中,串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。依据不同的条件实现对串口的灵活编程控制是我们所需要的。---- 在光学镜片镀膜工艺中,用单片机进行多路温度数据采...
用WinInet开发Internet客户端应用指南(二)

用WinInet开发Internet客户端应用指南(二)

用WinInet开发Internet客户端应用指南(二)2009-11-11二、实现步骤大家知道,每个Internet客户端程序都伴随有一定的目的行为,如读文件、写文件、删除文件等等。客户端的程序要实现这些行为的先决条件是建立Internet连接。然后再根据不同的目的进行具体的操作。为了方便起见,下面这这些张表格针对不同的应用行为列出了所需要的具体操作。其中列出了一般的Internet URL (FTP、或者 HTTP)客户端行为要实现某个目标所必须使用的...
用WinInet开发Internet客户端应用指南(一)

用WinInet开发Internet客户端应用指南(一)

用WinInet开发Internet客户端应用指南(一)2009-11-11一、概述一个Internet客户端程序的目的是通过Internet协议如:HTTP、FTP等来存取网络数据源(服务器)的信息。客户端程序可以访问服务器获得象天气预报,股票价格、重要新闻数据,甚至是与服务器交换信息。Internet客户端程序可以通过外部网络(Internet)或内部网络(一般为Intranet)访问服务器。为了开发Internet客户端程序。MFC类库提供了专门的 ...
Windows区对象(Bands)的创建与定制

Windows区对象(Bands)的创建与定制

Windows区对象(Bands)的创建与定制2009-11-11 VC知识库 赵湘宁一、简介Windows的区(Bands)对象有三种:既浏览栏(Explorer Bar)区对象,工具栏(Tools Bands)区对象,和桌面区对象(Desk Bands)。浏览栏区对象浏览栏区对象简称浏览栏,它是从IE4.0引入的,它是邻近浏览器窗格的一个显示区域。实际上它是IE窗口中的一个子窗口,可以用它来显示信息及与用户交互。浏览栏即可以是以垂直方式定位在浏览器窗格...
<< 11 12 13 14 15 16 17 18 19 20 >>