《VC++深入详解》学习笔记
文章平均质量分 78
EmberSpirit
这个作者很懒,什么都没留下…
展开
-
《VC++深入详解》学习笔记 第一章 Windows程序内部运行机制
1.API和SDK2.窗口:通过窗口句柄来标识。3.句柄(HANDLE):各种资源的标识号。 窗口句柄(HWND) 图标句柄(HICON)光标句柄(HCURSOR) 画刷句柄(HBRUSH) 实例句柄(HINSTANCE)。4.Windows程序设计,是事件驱动的,主要是基于消息的。消息:MSG结构体 Typedef struct tagMSG{原创 2012-08-20 19:02:23 · 823 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第十五章 多线程
1.基本概念(1)程序和进程:程序是计算机指令的集合,它以文件的形式存储在磁盘上,而进程通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址控件中的一次执行活动(一个程序可以对应于多个线程)(2)进程组成:操作系统用来管理进程的内核对象(PCB)和地址空间(3)进程从来不执行任何东西,它只是线程的容器,若要使用进程完成某项操作,它必须拥有一个在它的环境中运行的线程,此线程负责原创 2012-09-15 15:11:06 · 654 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第十二章 文件和注册表操作
1.C语言对文件操作的支持(1)打开文件:fopen FILE* fopen(const char* filename,const char* mode);//mode文件打开模式(r+,w+,a+,b)(2)文件写入:fwritesize_t fwrite(const void* buffer,size_t size,size_t count,FILE* stream);原创 2012-09-15 14:50:39 · 525 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第十四章 网络编程
1.协议:为进行网络中的数据交换而建立的规则、标准或约定(语义+语法+规则)(1)协议分层,各层之间单项依赖,下层向上层提供服务,对等层之间虚拟通信,实际通信在最底层完成(2)应用层:远程登陆协议Telnet,文件传输协议FTP,超文本传输协议HTTP、域名服务DNS、简单邮件传输协议SMTP、邮局协议POP3(3)传输层:传输控制协议TCP(面向连接,三次握手,数据确认和数据重传机制原创 2012-09-15 15:07:20 · 530 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第十三章 文档与串行化
1.使用CArchive类对文件进行读写操作(1)MFC提供的CArchive类没有基类,可以用它将对象数据保存到永久设备上,这种让对象数据持久性的过程就称为串行化(或称为序列化)(2)在程序中使用CArchive对象时,首先要在创建CArchive对象之前必须先创建一个CFile类或其派生类对象,并且因为存档对象既可以用来加载数据,也可以用来保存数据,所以要确保这个CFile类对象的打开原创 2012-09-15 15:03:54 · 887 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第十八章 ActiveX控件
1.可以把ActiveX控件看做是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某容器程序中,与该容器一起运行,容器应用程序是可以嵌入或链接对象的应用程序,服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序(1)OCX是ActiveX控件的一种后缀名,ActiveX控件对应的文件也可以是其他后缀名,例如DLL(2)一个典型的ActiveX控件,它具有方法、属性、事件这三原创 2012-09-19 17:59:25 · 1112 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第十九章 动态链接库
1.动态链接库通常都不能直接运行,也不能接受消息,他们是一些独立的文件,其中包含能被可执行程序或其他DLL调用来完成某项工作的函数,只有在其他模块调用动态链接库时,它才能发挥作用,在实际编程时,我们可以把完成某种功能的函数放在一个动态链接库中,然后提供给其他程序调用(1)静态库:函数和数据都被编译进一个二进制文件(通常扩展名为.lib),在使用静态库的情况下,在编译链接可执行文件时,链接器从库原创 2012-09-19 18:01:53 · 449 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第二十章 HOOK和数据库访问
1. 基本知识(1)对某些特殊的消息进行屏蔽,为了实现这一功能,我们可以安装一个HOOK过程,称为钩子过程,操作系统在传递消息时,将我们感兴趣的消息先传递给HOOK过程,在此函数中进行检查,然后再决定是否放行该消息(2)安装钩子过程:SetWindowsHookEx函数 函数原型:HHOOK SetWindowsHookEx( int idHook原创 2012-09-19 18:04:53 · 874 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第十六章 线程同步与异步套接字编程
1.事件对象(1)事件对象也属于内核对象,它包含以下三个成员 1.使用计数 2.用于指明该事件是一个自动重置事件还是一个人工重置事件的布尔值 3.用于指明该事件处于已通知状态还是未通知状态的布尔值(2)当人工重置事件对象得到通知时,等待该事件对象的所有线程均变为可调度线程,当一个自动重置事件对象得到通知时,等待该事件对象的线程只原创 2012-09-19 17:52:25 · 885 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第十一章 图形的保存和重绘
1.坐标空间和转换 (1)坐标空间:Win32应用程序编程接口(API)使用四种坐标空间:世界坐标系空间、页面空间、设备空间和物理设备空间,应用程序运用世界坐标系空间对图形输出进行旋转、斜切或者反射,Win32 API把世界坐标系空间和页面空间称为逻辑空间,物理设备空间通常是指应用程序的客户区,但它也包括整个桌面、完整的窗口等 (2)转换:把对象从一个坐标空间按复制到另一个坐标原创 2012-09-11 20:42:24 · 1116 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第十章 绘图控制
1.简单绘图(1)画点:CDC类的成员函数SetPixel 函数原型:COLORREF SetPixel(POINT point,COLORREF crColor);(2)画直线:CDC类的成员函数MoveTo和LineTo(3)画矩形:CDC类的成员函数Rectangle,参数为一个指向CRect对象的指针,要先建一个矩形对象(4)画椭圆:CDC类的成员函数Ellip原创 2012-09-11 20:39:34 · 914 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第二章 掌握C++
1.封装性、继承性、多态性2.类和结构体3.类和对象:(1)构造函数:对对象本身做初始化工作,一个类可有多个不同构造函数 (2)析构函数:清除类的对象,释放资源,一个类只能有一个析构函数 (3)函数重载:函数的参数类型或参数个数不同才能重载 (4)this指针原创 2012-08-21 19:48:37 · 572 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第四章 简单绘图
1.窗口句柄映射表和消息映射表2.视类窗口总是覆盖在框架类窗口之上,所有操作,包括鼠标单击,键盘按下,鼠标移动等操作都只能由视类窗口捕捉。框架类中收不到这些消息。3.删除消息响应函数:右键该函数名—delete(最好不要手工删除,因为系统添加的代码可能忘了删除)4.消息映射机制 (1)添加消息响应函数,系统添加的代码:第一处:消息响应函数原型 //原创 2012-09-02 20:22:55 · 566 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第三章 MFC框架程序剖析(未完成)
1. 单文档窗口(1)CAboutDlg void CAboutDlg::DoDataExchange(CDataExchange* pDX);(2)CMainFrame 变量:CStatusBar m_wndStatusBar; CToolBar m_wndToolBar;函数:CMainFrame();virtual原创 2012-09-02 20:16:45 · 628 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第六章 菜单
1.菜单栏、工具栏、状态栏2.菜单命令响应函数 菜单编辑器—添加菜单项—输入ID号(ID后加一个标识资源类型的字母,比如:IDM_菜单资源;IDC_光标资源;IDI_图标资源)—为该菜单添加命令响应函数(ClassWizard)3.菜单命令的路由 (1)CTestApp和CTestDoc都不是从CWnd类派生的,他们都没有MessageBox成员函数,可以使用全原创 2012-09-09 17:10:02 · 751 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第八章 对话框(二)
1.逃跑按钮的实现(1)创建两个相同的按钮(交替隐藏)(2)按钮窗口捕捉鼠标移动消息 1.创建一个从CButton类派生的新类CNewButton,然后将按钮控件和这种新类型的成员变量相关联,从而就把按钮控件和一个自定义的按钮窗口类关联起来 2.在CDialogDlg类的头文件中包含CNewButton类的头文件 3.让CNewButton类捕获鼠原创 2012-09-09 17:19:38 · 970 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第五章 文本编程
1.插入符 (1)创建文本插入符:CWnd类的CreateSolidCaret()函数 函数原型:void CreateSolidCaret(int nWidth,int nHeight); (2)显示插入符:ShowCaret()函数 CreateSolidCaret(2,20); ShowCaret();(3)让插入符适合当前字体的大小(首原创 2012-09-09 17:06:35 · 603 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第七章 对话框(一)
1.实际上对话框就是一个窗口,也可以将它看成是一个大容器,可以放置各种控件2.对话框的创建和显示 (1)在MFC中,所有的控件类都是由CWnd派生来的,因此,控件实际上也是窗口 (2)对话框的种类:模态对话框和非模态对话框 (3)创建对话框资源 (4)在MFC中,对资源的操作通常都是通过一个与资源相关的类来完成的,创建一个与对话框资源相关联的类原创 2012-09-09 17:15:59 · 849 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第九章 定制应用程序的外观
1.修改应用程序窗口的外观 (1)在窗口创建之前修改:在CMainFrame类的PreCreateWindow成员函数中进行修改 (2)在窗口创建之后修改:在CMainFrame类的Oncreate函数中使用SetWindowLong函数(第二个参数指定为GWL_STYLE) Todo:获得窗口的现有类型用GetWindowLong函数2.修改窗口的光标、图标和背景 (原创 2012-09-11 20:36:29 · 656 阅读 · 0 评论 -
《VC++深入详解》学习笔记 第十七章 进程间通信
1.当一个进程启动后,操作系统为其分配4GB的私有地址空间,位于同一进程中的多个线程共享同一个地址空间,因此线程间的通信非常简单,但因为进程地址空间都是私有的,所以进程间通信比较困难(1)共享内存(剪贴板)(2)匿名管道(3)命名管道(4)邮槽(5)消息2.剪贴板(1)剪贴板实际上是系统维护管理的一块内存区域,当在一个进程中复制数据时,是将这个数据放到该块内存区域中,当原创 2012-09-19 17:55:44 · 1399 阅读 · 0 评论