Window系统编程
Window以及MFC都定义了自己的数据类型,与C++的数据类型有映射关系,但是由于操作系统以及不同的硬件设备会影响这种映射关系。在考虑软件通用性时,需要考虑这方面问题。Window与C++数据类型映射关系如下:
Widnow程序是由事件驱动的,Win系统上的应用程序,必须包含WinPro()函数。 winOS 通过指针操作此应用的WinPro函数,并传递实参调用此 函数。应用程序开发人员根据WinPro()消息类型、参数信息进行不同行为消息的响应。程序员只需要关系自己关注的消息,将其他消息回传给WinOS即可。
WinOS的消息传递一般是struct结构体类型,因为WinOS是由C语言开发,后转为C++,的历史遗留现象。
MFC是对WinOS提供的WinAPI进行一定的封装,给程序猿提供便捷的开发。MFC没有严格遵守类的封装,与数据隐藏的已经原则,因为MFC出现较早。
一般WinAPI中的参数能提供一些隐含信息,如下:
WinOS应用的程序结构,一般由WinMain(),以及WinProc()两个WinAPI构成。WinMain一般是程序开始的初始化处理,WinProcess则是处理消息过程。这两个函数没有必然联系,一般WinProc()是由WinOS调用。且WinMAin也是被WinOS调用的。
句柄hInstance: 表示内存中某种对象的整数值,正在运行的程序。Windos消息两种:循环消息,排队消息。一般需要WinMain()获取的消息如:重回窗口、定时器消息、鼠标、键盘等都是派对消息;另一种非排队消息是由WinOS直接调用的WinProc消息,这类消息是作为排队消息的处理结果产生。
因为WinOS也是程序,WinMain的作用是从WinOS中的排队消息中取属于自己应用的派对消息,然后提醒WinOS调用自己的WinProC处理。因为WinOS是多任务系统,所以必然是这种的处理行为。Win程序在出现自己的多个排队消息时提醒Winos处理,处理完毕在消息队列中响应其他消息的Winmain()提醒,保证Win应用都可以被响应处理。如果没有其他的消息排队,则本应用将独占操作系统。
浙公网安备 33010602011771号