VC++深入详解笔记
zhang_zxk
这个作者很懒,什么都没留下…
展开
-
第1课 Windows程序内部运行机制
1.MFC生成的C++ 源文件中都有 StdAfx.h,此文件包含了常用的AFX函数的声明,其中有 afxwin.h,此文件包含了CRECT,CPoint, CWnd等许多类及其方法的声明。2.Project->Setting->Debug 可以加入命令行参数。3.在SDK 中要加入 "windows.h"和stdio.h 。因为LoadCursor,MessageBox等函数的声转载 2016-09-01 17:24:03 · 193 阅读 · 0 评论 -
第12课 文件和注册表操作
1.常量指针与指针常量的区分 char ch[5]="lisi"; const char *pStr=ch;//const 在*之前,表明指针指向的内容为常量,即为常量指针 char * const pStr=ch;//const 在*之后,表明指针的地址不能改变,即为指针常量 明白?2.对文件读写的三种方法 A.C中转载 2016-09-01 17:28:50 · 234 阅读 · 0 评论 -
第13课 文档与串行化
1.CArchive保存时的代码(1)保存 CFile file("1.txt",CFile::modeCreate | CFile::modeWrite); CArchive ar(&file,CArchive::store); int i=4; char ch='a'; float f=1.3f;//c/c++中,浮点数在默认情况下被定义为dou转载 2016-09-01 17:29:10 · 219 阅读 · 0 评论 -
第14课 网络编程
TCP/IP 是用于因特网 (Internet) 的通信协议。TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol)。在 TCP/IP 中包含一系列用于处理数据通信的协议:TCP (传输控制协议) - 应用程序之间通信UDP (用户数据包协议) - 应用程序之间的简单通信IP (转载 2016-09-01 17:29:48 · 254 阅读 · 0 评论 -
第15课 多线程与网络编程
一 Win32 提供了一系列的 API函数来完成线程的创建、挂起、恢复、终结以及通信等工作。下面将选取其中的一些重要函数进行说明。1、HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID l转载 2016-09-01 17:30:11 · 301 阅读 · 0 评论 -
第16课 线程同步与异步 套接字编程
1.事件对象:来实现线程的同步。与互斥对象一样均属于内核对象。 当人工重置有信号时,所有线程均得到信号,所以不能设为人工重置。代码就不贴了。 通过创建匿名的事件对象,也可以让一个程序只能运行一个实例。 2.关键代码段实现线程的同步:类似公用电话亭,只有当电话亭里面没人了,其它人才可以再进去打电话。用了 4个函数,这种方法比较简单!但转载 2016-09-01 17:30:33 · 247 阅读 · 0 评论 -
第17课 进程间通信
有四种方法1.剪贴板 a.创建个ClipBoard 的对话框应用程序,加两 EditBox和两个Button 发送接收。 b.具体代码: 发送端代码: if(OpenClipboard()) { CString str; HANDLE hClip; char *pBuf; EmptyClipboard(); GetDlgItemTex转载 2016-09-01 17:30:54 · 227 阅读 · 0 评论 -
第18课 ActiveX 编程(下面 X均为ActiveX简称)
ActiveX控件不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。ActiveX有方法,属性和事件三种特性。在ActiveX控件的窗口类中提供了 消息映射 调度映射和事件映射。调度映射是MFC提供的一种映射机制,主要是为了让外部程序可以方便的访问空间的属性和方法。事件映射也是MFC提供的一种映射机制,让控件可以向包含它的容器发送事件通知。接转载 2016-09-01 17:31:14 · 332 阅读 · 0 评论 -
第19课 动态链接库
1.DLL简介,动态库,静态库。动态库节约磁盘空间,静态库体积大。可以用多种语言编写 DLL文件。动态库有两种加载方式:隐式调用和动态加裁!Windows API 动态库: Kernel32.dll User32.dll GDI32.dll使用动态链接库的好处:可以采用多种编程语言增强产品的功能(方便更新dll)提供二次开发的平台简化项目的管理可以节省磁盘空间和内存有助转载 2016-09-01 17:31:41 · 245 阅读 · 0 评论 -
第11课 图形的保存和重绘
CView类的OnPaint()void CView::OnPaint(){ // standard paint routine CPaintDC dc(this); OnPrepareDC(&dc); OnDraw(&dc);}可见,视图类窗口重绘都会调用OnDraw(),所以,在视图类中重写OnDraw即可。转载 2016-09-01 17:28:31 · 357 阅读 · 0 评论 -
第10课 绘图控制
1.画图: a. 创建四个菜单,为其添加消息响应; b. 在View中添加 m_DrawType,保存绘画类型; c. 增加成员变量, m_PtOrigin,当按下鼠标左键时,保存此点; d. 在OnLButtonUp中画点,线,矩形,椭圆,别忘记设置成透明画刷注意:CDC::SetPixel 用来给指定点设置像素点,点的颜色跟指定颜转载 2016-09-01 17:28:11 · 285 阅读 · 0 评论 -
第2课 掌握C++
1.定义结构体和类时别忘记在最后加入 ";" 号!例如 Class Point{int x;int y;};2.#include 与#include "xxx.h"的区别: 不查找运行时目录,""查找运行时目录!3.类的定义中,如果未指明成员类型,则缺省为 private.而结构体中则缺省为public.4.引用:引用经常用在函数的传参上。另外数值交换函数也经常用转载 2016-09-01 17:24:58 · 160 阅读 · 0 评论 -
第3课 MFC框架程序
1.在main 或WinMain之前,全局变量(对象)已经被分配内存并初始化了。2.在MFC 中在WinMain之前有个 theApp全局变量先被构造并被初始化,而由于子类构造函数执行前,其父类的构造函数先被执行,所以 CTestApp的父类CWinAPP 的构造函数先执行。产生了 theApp对象后,在WinMain()中的指针 *pThread和*pApp 就有了内容。知识点:转载 2016-09-01 17:25:25 · 191 阅读 · 0 评论 -
第4课 简单绘图
1.在单文档中view挡在 MainFrame的前面(View- 墙纸,MainFrame-墙 )。此时如果编写针对MainFrame的 mouseClick事件,将不会有反应。2.消息响应会在3处修改代码,(1)在头文件中,//{{AFX_MSG(CDrawView)afx_msg void OnLButtonDown(UINT nFlags, CPo转载 2016-09-01 17:25:51 · 215 阅读 · 0 评论 -
第5课 文本编程
1.CWnd::CreateSolidCaret创建插入符, ShowCaret()显示插入符。GetTextMetrics(),获得当前字体的一些信息。 CWnd::CreateCaret()创建图象插入符 bitmap.LoadBitmap(IDB_BITMAP1);// 此处的bitmap为成员变量!!! CreateCaret(&bitmap); ShowC转载 2016-09-01 17:26:16 · 203 阅读 · 0 评论 -
第6课 菜单
1 顶层菜单默认都是Pop-up,即弹出式菜单,不能响应命令。2.当对某菜单添加消息响应函数时, 4个类的消息响应优先次序分别是: 1.View;2.CDOC;3.CMainFrame.4.CWinAPP. 为什么?请参阅《深入浅出》3.消息分类:a;标准消息(以 WM_开头的消息,但不包括WM_COMMAND);从CWnd派生的类,可以接受这类消息转载 2016-09-01 17:26:41 · 217 阅读 · 0 评论 -
第7课 对话框1
0 对话框分类:Modal 和 Modeless 1.如果在SDI 中要调用对话框 a.先插入一个对话框资源; b.然后在ClassWizards 中为其创建一个类。其目的是比较方便为添加按纽和消息响应函数。 c.然后实例化它。在实例化时,必须将其头文件包含进去。2.创建模态对话框:CTestDlg dlg; dlg.DoMod转载 2016-09-01 17:27:03 · 228 阅读 · 0 评论 -
第8课 对话框2
1.如何改变按纽的字体?在对话框的属性中改变字体的属性即可2.逃跑按纽的实现 1.从CButton 派生一个类, CWeixinBtn 2.将IDC_EDIT1 关联成员变量 m_btn1,类型为CWeixinBtn ,注意要包含头文件。 3.在CWeixinBtn 中加一个指针成员变量 CWeixinBtn *pWeixinBtn,然后将其地址初始化。转载 2016-09-01 17:27:26 · 193 阅读 · 0 评论 -
第9课 定制应用程序外观
1.修改窗口外观有2种方法:(1)窗口创建之前,在MainFrame的PreCreateWindow()中修改cs,或直接使用AfxRegisterWndClass();(2)窗口创建之后,在MainFrame的OnCreate()中调用SetWindowLong();修改外观和图标在MainFrm中进行,而修改背景和窗口光标只能在View中进行。为什么转载 2016-09-01 17:27:50 · 183 阅读 · 0 评论 -
第20课 钩子与数据库访问
1.Hook简介:作用是拦截某些消息,关键函数是 SetWindowsHookEX()SetWindowsHookEX函数的作用是安装一个应用程序定义的钩子过程,并将其放到钩子链中。注意,最后安装的钩子过程总是排列在该链的前面。(1)鼠标钩子(2)键盘钩子(3)把信息传递给下一个钩子过程2.示例程序:2.1.新建一基于对话框工程, Inner转载 2016-09-01 17:32:11 · 562 阅读 · 0 评论