三、Win32/MFC,掌握Windows消息机制,理解MFC类库的设计思想,熟练使用MFC,学会自学方法,掌握编程思想
|
课程主题 实训内容 实训目标
|
Win32原理
|
Windows消息机制,消息队列,回调函数,创建Win32程序 的基本步骤,WM_CREATE、WM_PAINT、WM_DESTROY,键盘消息,鼠标消息,等;
|
能够独立完成Win32版本的MiniClock时钟程序,熟练掌握各种消息的发生时机和编程方法。
|
从Win32过渡到MFC
(从华老师专利技术)
|
类库的概念,美国专利技术Win32Lib,将Win32Lib封装成Win32Class,隐藏WinMain函数
|
通过编写MiniMFC,了解类库的实现过程和消息映射的机制,掌握类库的实现思想和核心原理,为过渡到MFC打下坚实基础。
|
MFC编程基础、消息映射
|
MFC消息映射机制,手工进行消息映射,Windows消息分类,类向导的用法,MFC框架结构图,SDI程序的使用,Win32对象和其MFC类的对应关系,Windows资源
|
能够独立将Win32版本的MiniClock时钟程序改写成SDI版本。
|
GDI编程
|
GDI/DC/GDI_Object的概念,GDI绘图的6大步骤;GDI的Win32对象和MFC类的使用;画笔,画刷,字体,位图,调色板,剪裁区域,路径层;文本输出;改变客户区背景颜色的4种方法,利用双缓存技术避免屏幕闪烁。
|
能够独立完成MiniCAD和MiniNotepad程序,熟练掌握图形和文本编程。
|
菜单、工具条、状态条
|
菜单,快捷键,菜单命令消息的传递路由,弹出式菜单,动态菜单;工具条、状态栏的创建和显示;
|
完善MiniCAD项目,为其添加菜单和工具条;在状态栏添加鼠标位置和当前时间显示栏。
|
对话框程序
|
模态对话框、非模态对话框;颜色对话框,打开文件对话框,保存文件对话框,TreeView,ListView等控件的使用;控件变量映射;
|
能够独立完成MiniQQ项目的部分功能:实现登录过程,完成好友列表,使用非模态对话框弹出和好友聊天的窗口。
|
文档视图结构
|
文档/视图的概念,使用CArchive类对变量串行化存取,MFC对NewFile, OpenFile, SaveFile菜单的路由过程,反向跟踪法,编写支持串行化操作的类
|
完善MiniCAD项目,实现对图形保存和读取的功能
|
项目练习:俄罗斯方块;中国象棋智能算法
|
动态连接库
|
动态链接库/静态链接库的概念;DLL开发的3种方式;dumpbin和depends工具的使用;DLL文件的使用:隐式链接和动态加载
|
能够独立编写MaxMin.dll并使用之
|
多线程和对象同步
|
程序、进程、线程的概念,时间片,线程的创建、挂起、恢复、终结以及通信,线程的同步技术:临界区/互斥量/事件/信号量/互锁函数等,线程间的消息通讯,线程的死锁,MFC工作者线程和用户界面线程
|
能够独立完成:完善MiniQQ项目,使用用户界面线程代替原来的非模态对话框。点击同一个人只弹出同一个聊天窗口
|
Windows网络编程
|
网络协议,TCP/IP协议,TCP/UDP协议,TCP的三次握手,TCP/UDP网络编程步骤,阻塞套接字模式,异步套接字模式,MFC异步套接字模式
|
能够独立完成TimerServer项目:使用TCP阻塞套接字模式和多线程技术,编写一个时间同步服务器,服务端提供时间服务,客户端获取服务器时间,以将本地时间和服务器时间同步
|
ADO数据库编程
|
四种数据库访问技术:ODBC/DAO/OLE DB/ADO;ADO对象;通过ADO控件访问数据库;通过ADO对象编程访问数据库
|
能够独立完成学生信息录入和查询系统
|