文档详情

孙鑫VC++视频笔记..docx

发布:2016-12-30约2.66万字共38页下载文档
文本预览下载声明
孙鑫MFC开发学习笔记孙鑫MFC开发学习笔记1一、Windows内部运行原理21.1消息21.2入口函数WinMain()31.3窗口3设计一个窗口类:31.4消息循环41.5回调函数51.6总结6二、C++概念6三、MFC程序框架8VC++学习笔记之MFC应用程序创建/执行顺序和MFC运行机制8四、画图10五、文本编程11根据字体调整插入符大小12创建图形插入符12路径层13输出键盘的输入13卡拉OK文字变色效果15六、菜单编程15获取菜单的指针15添加位图菜单15七、网络编程17网络模型17端口17套接字17网络字节序18总结:23基于UDP的聊天程序:28八、多线程编程31进程组成31CreateThead()创建线程。WindowsApi函数。31关闭线程句柄32线程同步1:互斥对象32限制只有一个程序进程(通过命名互斥对象)32九、线程同步与异步套接字编程33线程同步2:事件对象(自动重置)33通过事件对象实现线程间同步:33限制程序只有一个进程执行(通过命名事件对象)35Windows内部运行原理操作系统完成的功能以函数的形式提供给应用程序使用。应用程序调用这些函数完成系统调用。这些函数集合就是WindowsAPI(应用程序编程接口)操作系统感知事件,通知应用程序,应用程序提供处理方法。操作系统将每个事件包装称一个消息的结构体MSG,从消息队列中读取出来传递给应用程序,应用程序将对其做出事件处理。消息消息的结构体:typedef struct tagMSG { ????HWND???hwnd;???????UINT???message;????WPARAM wParam;????LPARAM lParam;????DWORD??time;????POINT??pt;} MSG, *PMSG, *NPMSG, *LPMSG;hwnd指向窗口的句柄,这个窗口接收这个消息。句柄实际上就是资源的标示,类似于指针。分为图标句柄HICON、光标句柄HCUSOR等。message 消息的整数标示。微软定义了很多宏代表这些数值,WM_开头的,例如WM_LBUTTONDOWN鼠标左键按下。wParam和lParam指示关于消息的附加信息。使消息更加确切具体化。time 消息投递时的时间。pt结构体,有x,y成员,表示消息投递时鼠标的坐标(coordinate)。消息总是放在消息队列里。应用程序处理消息时还有可能调用其他API函数,以完成某些特殊功能。入口函数WinMain()int WINAPI WinMain( HINSTANCEhInstance, // handle to current instance HINSTANCEhPrevInstance, // handle to previous instance LPSTRlpCmdLine, // command line intnCmdShow // show state);hInstance应用程序实例句柄,相当于一个应用程序的线程。这个句柄就是这个线程的标示。hPrevInstance综上所述,前一个实例的句柄标示。Win32程序总是为空。lpCmdLine LPSTR表示指向字符串的指针(char *),命令行参数指针。(例如main(argc[],char *argv))nCmdShow程序运行窗口的显示状态(最大化还是最小化等)这个函数是由操作系统调用,参数由操作系统赋值。窗口分4个步骤:设计一个窗口类;注册窗口类;创建窗口;显示及更新窗口。设计一个窗口类:typedef struct _WNDCLASS { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; } WNDCLASS, *PWNDCLASSstyle CS即class style 也是定义了很多宏表示CS_HREDRAW |CS_VREDRAW 垂直或者水平重画。lpfnWndProc 窗口过程函数指针。这个函数也称回调函数。接收到消息时,不需要我们调用函数,由操作系统去调用回调函数去处理,但是代码由我们事先写好。回调函数指针。cbClsExtra额外的为窗口类分配的资源,一般设为
显示全部
相似文档