摘要:作者:疙瘩
当用vc++的application wizard生成除了cdialog basiced以外的应用程序时,将自动产生视图类、文档类、主帧窗口类、应用程序类等等。一般来说,程序的核心数据及操作在文档类中实现。跟界面有关的数据及操作在视图类中实现。当需要在某个类中使用不属于该类的数据时,必须要取得该数据所属类的指针。从视图类获得文档类的指针是很容易的,用getdocument即可,这在......
摘要:郎锐
一、引言
在gis(地理信息系统)类软件设计中经常需要在绘图时使用一些相对固定但又频繁使用的一些用以代表地理状态的符号如河流、铁路、海岸线等等。每一种符号均有其各自的风格,但在不同的位置的具体表示却不尽相同,比如代表铁路的符号是一段黑白相间的细矩形,但有时是平直的,在拐弯时用弯曲的矩形来表示。因此对于上述符号的绘制一般不易用固定的图标去实现,而多采用灵活多变的用函数来直接绘制的方法。显......
监视、控制计算机的使用■ 穆文烨
基于windows nt/2000 的应用系统中,一些关键的人机交互工作站,常需要了解并记录所有操作人员操作计算机的情况.如: 在工业控制领域,一些使用计算机对设备进行监视与控制的工作站,需要非常高的可靠性与安全性.在这些工作站上通常要求只能运行系统所要求的应用程序,不能运行与系统无关的程序,同时要求对计算机操作人员的所有原始输入进行记录,以便出现事故(如操作故障.程序异常退出)的时候,用来分析是人为原因,还是系统原因造成的. 【程序编程相关:
【引用】Windows系列操作系统对线程】
【推荐阅读:
SendMessage进程间简单通信问题】
基于以上需求,我们必须解决两个问题,一个是如何记录操作人员的输入,另一个是如何控制操作人员的输入.在dos.windows 3.1.windows 95/98中都可以编写响应键盘与鼠标输入的中断处理程序,截取来自键盘与鼠标的输入,记录.分析后依情况分别处理.但是在windows nt与 windows 2000中,这样的解决方法将不再行得通,这是因为windows nt/2000操作系统为了提高系统的可靠性,不再允许应用程序直接对系统设备的底层进行操作.这样,用户的应用程序将不能够对计算机的端口地址进行读写操作,所以在windows nt/2000操作系统中对计算机端口的读写是无效的.另外一种方法能够非常完美地解决这个问题,就是可以编写操作系统的设备驱动程序来解决,但是要编写系统的设备驱动程序,必须对windows nt/2000的系统底层以及整个系统架构有比较深入的了解.而且设备驱动程序的编写.调试都比较困难,同时这方面的资料也比较少.所以本文没有采取这种方法,而是采用微软公布的标准win32 函数与钩子技术来解决这个问题,比较方便而且快捷. 【扩展信息:
子类化:增强Edit控件为日期输入控件
】
在windows nt/2000 操作系统中,称各种输入为事件(event),所有的键盘.鼠标输入事件以及其他事件都是通过消息传递处理机制来得到响应的.控制.监视计算机实际上是控制.监视事件消息流.windows操作系统为这种应用提供钩子(hook)技术.这种技术的要点就是在操作系统的消息传递处理机制上外挂一个我们定义的函数,可以使用这个函数来监视.控制系统的事件消息流.本文采用的就是这种方法,这种方法要求将所有的程序代码放入系统可以加载的动态链接库中.下面我们以键盘输入的监视与控制为例详细叙述这种方法.其总体思路如下:
首先,定义自己的钩子函数.
其次,安装自定义的钩子函数,此后钩子函数在后台开始工作.一旦系统发现击键动作或者鼠标动作,系统将马上调用该自定义的钩子函数,并将事件消息传入,供程序分析判断.它可以监视所有的击键与鼠标动作,与dos 时代的中断调用有非常相似的地方.
最后,卸载自定义的钩子函数.
钩子函数 的定义
微软的钩子技术的原理就是应用程序可以在系统的消息处理机制上外挂一个子程序,在消息尚未到达目的地之前,用该子程序来截获此消息,以进行监视与控制.我们这里使用的是wh_keyboard_ll类型的钩子函数,这种类型的钩子函数可以截获所有的键盘事件,即敲击键盘上的任何一个键,我们自定义的钩子函数都可以知道....
下一页 摘要:在windows应用程序中,对话框是应用最广泛也是比较难控制其风格(外表)的一类窗口。相信用过windows 的朋友在享受其强大功能的同时,一定也为它所提供的具有立体感的界面而感叹吧。通常情况下,对话框的弹出和消隐都是瞬时的,下面将介绍如何实现对话框的动画弹出和消隐,增强程序的美观性。
请按以下步骤实现:
第一步:生成我们的工程(基于对话框)flashdlg,所有的选项都取默认值,在对......