网络协议分析与编程-15_聊天室程序设计.doc

基于多线程的网络聊天室程序 Windows编程原理 MFC的程序结构 聊天室实例 Windows程序运行原理Window应用程序,操作系统,计算机硬之间的相互关系 应用程消息队 ④③ 操作系统②① 输入输出设备. 关于AP向下的箭头③表示应用程序可以通知操作系统执行某 个具体的动作,如操作系统能够控制声卡发出声音,但它并不知道应该何时发出何种声音,需要应用程序告诉操作系统该发出什么样的声音。这个关系好比有个机器人能够完成行走的功能,但是,如果人们不告 诉它往哪个方向上走,机器人是不会主动行走的。这 里的机器人就是操作系统,人们就是应用程序。 关于API 那么,应用程序是如何通知操作系统执行某个功能的呢有过编程经验的读者都应该知道,在应用程序中要完成某 个功能,都是以函数调用的形式实现的,同样,应用程序也是以函数调用的方式来通知操作系统执行相应的功能的。操作系统所能够完成的每一个特殊功能通常都有一个函数与其对应,也就是说,操作系统把它所能够完成的功能以 函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用,这些函数的集合就是Windows操作 系统提供给应用程序编程的接口(Application Programming Interface),简称Windows API。如CreateWindow就是一个API函数,应用程序中调用这个函数,操作系统就会按照该函 数提供的参数信息产生一个相应的窗口。. 关于消息及消息队向上的箭头④表示操作系统能够将输入设备的变化上传给应 用程序。如用户在某个程序活动时按了一下键盘,操作系统马上能够感知到这一事件,并且能够知道用户按下的是哪一个键,操作系统并不决定对这一事件如何作出反应,而是将这一事件转交给应用程序,由应用程序决定如何对这一事件 作出反应。好比有个蚊子叮了我们一口,我们的神经末梢(相当于操作系统)马上感知到这一事件,并传递给了我们 的大脑(相当于应用程序),我们的大脑最终决定如何对这一事件作出反应,如将蚊子赶走,或是将蚊子拍死。对事件作出反应的过程就是消息响应。 关于消息及消息队操作系统是怎样将感知到的事件传递给应用程序的呢?这通过消息机(Message来实现的。操作系统将每个事件都装成一个称为消息的结构MS来传递给应用程序,参看 MSDN。MSG结构定义如下:typedefstructtagMSG{ HWND hwnd; //窗口句柄,存放窗口的标识 UINT message;//用一个整数来表示一个消息 WPARAM wParam;//指示关于该消息的附加信息LPARAM lParam;//同上(无符号整型)DWORD time;//消息被投递出去的时间 POINT pt;/点的结构体,消息被投递时的光标位置} MSG; 关于句句柄HANDL),资源的标识。?? 操作系统要管理和操作这些资源,都是通??过句柄来找到对应的资源。按资源的类型,又可将句柄细分成图标句柄 (HICON),光标句柄(HCURSOR),窗 口句柄(HWND),应用程序实例句柄 (HINSTANCE)等等各种类型的句柄。操作系统给每一个窗口指定的一个唯一的标 识号即窗口句柄。. 从变量的类型区分变量的用inx,x=30; y=30;//x和y既可以用来表示坐标点,也可以用来表示宽度和高度,还可以用来表示身高和体重。 typedefintWIDTHtypedefintHEIGHT WIDTH x;HEIGHT y;//好处:我们从变量的类型上就可以知道x和y是用来表 示宽度和高度。. WinMain函Window程序的入口函数?? intWINAPI WinMain(HINSTANCEhInstance, // handle to current instanceHINSTANCEhPrevInstance, // handle to previous instanceLPSTRlpCmdLine, // command line (char* argv[]) intnCmdShow// show state ); 开发Win32窗口程序的过设计一个窗口类;?? 注册窗口类;??创建窗口;??显示及更新窗口。?? 消息循环,去获取消息; ?? 窗口过程函数的消息响应。?? 设计窗口typedestruc_WNDCLASS { UINT style; /窗口类的类型 WNDPROClpfnWndProc; //窗口过程函数(回调函数)intcbClsExtra; //为该类设定额外内存空间in

文档评论(0)

1亿VIP精品文档

相关文档