孙鑫VC视频教程观看记录
01:
了解了SDK编程,消息队列,消息响应,消息循环,窗口函数等。
02:
可以冒号:父类构造函数和a(1)
protected子类可以访问
覆盖:父类子类之间 重载:同一个类中
::作用域标识符,表明函数是属于哪一个类的
父类和子类的对象首地址相同
用虚函数实现多态
纯虚函数为子类服务
引用不需要占据内存
可以用预编译指令符解决包含多次重复定义的问题,但是不需要用到定义的值)(定义和没有值不是一个概念,有命名规则是为了避免重复定义,别人也定义了这个宏)
预编译,你加个屁断点
03:
这集看着好枯燥,只需要了解即可。
04:
只能在客户区作图,View没有非客户区
Frame包含菜单menu和工具栏toolbar但是menu不在客户区内不能画图
CClien和CDC相比不用显示调用ReleaseDC了,表示客户区,关键是this还是GetParent(),表示获得了什么的…CDC CClientDC CWindowDC;DC和什么窗口有关 hdc hwnd
CPen *poldPen = dc.SelectObject(&pen); 返回当前设备上下文中的笔,并替换将其替换成新的笔,一般删除的是地址的内容而不是地址
类的静态成员函数可以直接用类名调用,其他不能用,以为没有创建对象时才会分配内存空间,而静态成员函数遇到类就为其分配内存空间了,并且函数内用到的成员变量也需要是静态的,因为成员变量也要有空间。若条用了静态成员函数,那么静态成员变量要在外部初始化,int 类名::x=0;
void CDrawLineView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
/*CPoint pt_start(50, 50);
CPoint pt_end(150, 150);
CDC *pDC = GetDC();
pDC->MoveTo(pt_start);
pDC->LineTo(pt_end);
ReleaseDC(pDC);*/ /*CPoint pt_start(50,50);
CPoint pt_end(150, 150);
HDC hdc = ::GetDC(m_hWnd);//全局的GetDC
MoveToEx(hdc, pt_start.x,pt_start.y,NULL);
LineTo(hdc, pt_end.x, pt_end.y);*/ /*CWindowDC dc(GetDesktopWindow());
CPen pen(PS_SOLID, 1, RGB(0, 255, 0));
CPen *poldPen = dc.SelectObject(&pen);
//dc.MoveTo(50, 50);
//dc.LineTo(150, 150);
CBrush brush(RGB(255, 0, 0));
dc.FillRect(CRect(50,50,150,150),&brush);
dc.SelectObject(poldPen);
DeleteObject(&pen);*/ /*CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap);
CClientDC dc(this);
dc.FillRect(CRect(100, 100, 200, 200),&brush);//Rectangle需要selectobject*/ /*CClientDC dc(this);
CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH)); //HBRUSH HGDIOBJ 强制转换成HBRUSH 透明(空)画刷
CBrush *poldBrush = dc.SelectObject(pBrush);
dc.Rectangle(100, 100, 200, 200);
dc.SelectObject(poldBrush);
DeleteObject(pBrush);*/
isDraw = true;
start_point = point;
old_point = point;
CView::OnLButtonDown(nFlags, point);
} void CDrawLineView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
isDraw = false;
CView::OnLButtonUp(nFlags, point);
} void CDrawLineView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this);
if (isDraw)
{
//dc.SetROP2(R2_WHITE);
dc.MoveTo(start_point);//画直线
dc.LineTo(old_point);
dc.MoveTo(old_point);//画边界
dc.LineTo(point);
old_point = point;
//start_point = point;
}
CView::OnMouseMove(nFlags, point);
}
孙鑫VC视频教程观看记录的更多相关文章
- 孙鑫VC++视频教程(1-20课全)
孙鑫VC++视频教程(1-20课全)PPT讲义和源代码 http://down.51cto.com/data/467760 孙鑫VC++从入门到精通开发详解视频教程[20讲] http://down. ...
- 孙鑫VC++视频教程笔记
写在前面的话:在学习孙鑫老师的VC++视频时,为了加深自己对知识的深入理解,就做了下面的笔记. 第一讲: 第二讲: 第三讲: 第四讲: 第五讲: 第六讲: 第七讲: 第八讲: 第九讲: 第十讲: 第十 ...
- 孙鑫VC学习笔记:多线程编程
孙鑫VC学习笔记:多线程编程 SkySeraph Dec 11st 2010 HQU Email:zgzhaobo@gmail.com QQ:452728574 Latest Modified ...
- 孙鑫VC学习系列教程
教程简介 1.循序渐进 从Win32SDK编程开始讲解,帮助大家理解掌握Windows编程的核心 -- 消息循环机制. 2.通俗易懂 编程语言枯燥难懂,然而通过孙鑫老师形象化的讲解,Windows和M ...
- 孙鑫 VC++深入详解第14课——TCP通信/UDP通信(转)
原文转自 http://blog.csdn.net/supersonico/article/details/18900319 一.用VC++来编写TCP 服务器/客户端的简单程序. 注意事项: 1.要 ...
- 孙鑫视频VC++深入详解学习笔记
孙鑫视频VC++深入详解学习笔记 VC++深入详解学习笔记 Lesson1: Windows程序运行原理及程序编写流程 Lesson2: 掌握C++基本语法 Lesson3: MFC框架程序剖析 Le ...
- 孙鑫视频学习:VS2010中找不到【Tab order】菜单项
在学习孙鑫视频中,修改Tab顺序时,找不到VC6.0中提到的[Layout]->[Tab order]菜单项,但VC2010中可以用Ctrl+D调出来Tab顺序,或者[格式]->[Tab键 ...
- 孙鑫视频学习:改变窗口过程函数中出现error C2440错误的解决方法
在Visual Studio 2010中,即使代码是完完全全按照孙鑫视频中的敲,也会在出现error C2440,这是因为开发平台由VC6.0升级至VS2010,需要将原有的项目迁移.VS2010对消 ...
- 孙鑫视频学习:关于Visual Studio 2010中MFC工程的消息WM_INITDIALOG找不到的问题
学习孙鑫的那个深入详解C++视频时,有一处给编辑框空间改写窗口过程函数的例子,其中需要添加一个WM_INITDIALOG消息响应函数,但在类向导的消息栏下找不到WM_INITDIALOG消息.解决方法 ...
随机推荐
- 17.3.12----OS模块ya
1---他是一xu个python系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作. import os#导入这个os模块,其实python模块就是C元的包含很多函数的文件 2---o ...
- 吴裕雄--天生自然ShellX学习笔记:Shell 基本运算符
Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 ...
- 蓝屏(BSOD)转储设置,看本文就够了!
原总结注册表debug调试dump转储文件蓝屏BSODprocess monitor 前言 我们在 内核转储,开抓啦! 这篇文章里介绍了一个关键的系统设置.设置好后可以让系统在蓝屏(Blue Scre ...
- JavaSE--Java 的基本程序设计结构
Java 对大小写敏感 Java 中定义类名的规则很宽松.名字必须以字母开头,后面可以跟字母和数字的任意组合.长度基本上没有限制.但是不能使用 Java 保留字作为类名. 标准的命名规范为:类名是以大 ...
- python基础,if判断
一.计算机基础知识: 1.计算机基本组成:主板+CPU+内存 (CPU:主频,核数(16) 内存:大小,型号,主频 显卡:显存,位宽) 2.计算机最低层:电子电路,只能识别0和1. 二.pyt ...
- python模块——datetime
datetime模块是python自带对时间的操作,其常用的四大类分别是date.time.datetime.timedelta.下面分别讲解下这四大类中常用的方法及其属性. date类 date类的 ...
- document.write的时机
document.write第一次加载进入页面的时候会紧跟文档,写入内容.但是如果在文档已经加载完毕之后,再通过点击的方式调用函数的话会直接把整个文档覆盖掉.
- 编译Python文件
编译Python文件 一.编译Python文件 为了提高加载模块的速度,强调强调强调:提高的是加载速度而绝非运行速度.python解释器会在__pycache__目录中下缓存每个模块编译后的版本,格式 ...
- Spire.doc jar包实现word文件添加水印demo
/** * @create: 2020-02-23 21:50 */ import com.spire.doc.*; import com.spire.doc.documents.WatermarkL ...
- 学习ECC及Openssl下ECC生成密钥的部分源代码心得
一.ECC的简介 椭圆曲线算法可以看作是定义在特殊集合下数的运算,满足一定的规则.椭圆曲线在如下两个域中定义:Fp域和F2m域. Fp域,素数域,p为素数: F2m域:特征为2的有限域,称之为二元域或 ...