windows应用编程

windows应用编程

ID:39994505

大小:252.00 KB

页数:28页

时间:2019-07-16

windows应用编程_第1页
windows应用编程_第2页
windows应用编程_第3页
windows应用编程_第4页
windows应用编程_第5页
资源描述:

《windows应用编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Win32应用编程VC交流学习作者:唐凯Windows应用程序,操作系统,计算机硬件之间的相互关系应用程序操作系统输入输出设备消息队列1234API上面图中向下的箭头3表示应用程序可以通知操作系统执行某个具体的动作,例如控制声卡发出声音等,操作系统本身是不知道执行何种具体动作,需要由应用程序来通知操作系统具体的动作。那么应用程序应该如何通知操作系统执行某个功能的呢?API大家都写过程序,相信大家都知道,在程序中实现某项功能的时候一般是通过函数调用实现的,那么同样的,应用程序也是通过函数调用的方式来通知操作系统执行

2、相应的操作的。操作系统所能够完成的每一个功能都有一个函数与其相对应,也就是说,操作系统把所能完成的功能以函数的形式提供给应用程序,应用程序程序对这些函数的调用称作系统调用,这些函数就是操作系统提供给应用程序编程的接口(ApplicationProgrammingInterface),简称WindowsAPI。消息与消息队列前图中向上的箭头4表示操作系统能够将输入设备的变化上传给应用程序。如果用户在某个应用程序活动时按了一下,操作系统马上就能感知到这一事件,而操作系统对此事件做过处理后再转交给应用程序,由应用程序来

3、决定对该事件的响应。那么操作系统是如何通知应用程序的呢?消息与消息队列操作系统将每一个事件都包装成一个称为消息的结构体MSG来传递给应用程序。MSG的定义如下:typedefstructtagMSG{HWNDhwnd;UINTmessage;WPARAMwParam;LPARAMlParam;DWORDtime;POINTpt;}MSG;消息与消息队列应用程序是如何接收这些消息的呢?在Windows下每一个应用程序都拥有一个消息队列,操作系统发送消息就是发到消息队列里面,应用程序从消息队列里面按照顺序获取相应的消

4、息进行响应处理,以上就是Windows消息机制。句柄句柄(HANDLE),资源的标识。操作系统要管理和操作这些资源,都是通过句柄来找到对应的资源。按照资源类型,又可将句柄细分为图标句柄(HICON),光标句柄(HCURSOR),窗口句柄(HWND),应用程序实例句柄(HINSTANCE)等等各种类型的句柄。操作系统给每一个窗口唯一的标识号,即窗口句柄。WinMain函数Windows程序的入口函数:intWINAPIWinMain(HINSTANCEhInstance;//handletocurrentinsta

5、nceHINSTANCEhPrevInstacne;//handletopreviouseinstanceLPSTRlpCmdLine;//commandlineintnCmdShow;//showstate);窗口的创建创建一个完整的窗口需要经过以下四个步骤:设计注册一个窗口类;注册窗口类;创建窗口;显示及更新窗口。设计窗口类typedefstruct_WNDCLASS{UINTstyle;WNDPROClpfnWndProc;intcbClsExtra;intcbWndExtra;HANDLEhInstanc

6、e;HICONhIcon;HCURSORhCursor;HBRUSHhbrBackground;LPCTSTRlpszMenuName;LPCTSTRlpszClassName;}WNDCLASS;窗口的过程函数第二个成员变量lpfnWndProc指定了这一类型窗口的过程函数,也称回调函数。回调函数的原理是这样的,当应用程序收到给某一窗口的消息时,就应该调用某一处函数来处理这条消息,这一调用过程不用应用程序自己实施,而由操作系统完成,但是回调函数代码本身必须由应用程序完成。对于一条消息,操作系统就是调用lpfnW

7、ndProc成员指定的应用程序中函数来处理。每一种不同类型的窗口都有自己专用的回调函数,该函数就是通过lpfnWndProc成员指定。注册窗口类RegisterClass(constWNDCLASS*lpWndClass);创建窗口HWNDCreateWindow(LPCTSTRlpClassName,LPCTSTRlpWindowName,DWORDdwStyle,intx,nty,intnWidth,intnHeight,HWNDhWndParent,HMENUhMenu,HANDLEhInstance,PV

8、OIDlpParam);显示窗口BOOLShowWindow(HWNDhWnd,intnCmdShow);BOOLUpdateWindow(HWNDhWnd);消息的获取消息循环GetMessage/PeekMessage从程序的消息队列当中,获取到消息。TranslateMessage检查获取到的消息,如果发现是按键消息,产生一个字符消息,并放入程序的消息队列。Disp

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。