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视频教程观看记录的更多相关文章

  1. 孙鑫VC++视频教程(1-20课全)

    孙鑫VC++视频教程(1-20课全)PPT讲义和源代码 http://down.51cto.com/data/467760 孙鑫VC++从入门到精通开发详解视频教程[20讲] http://down. ...

  2. 孙鑫VC++视频教程笔记

    写在前面的话:在学习孙鑫老师的VC++视频时,为了加深自己对知识的深入理解,就做了下面的笔记. 第一讲: 第二讲: 第三讲: 第四讲: 第五讲: 第六讲: 第七讲: 第八讲: 第九讲: 第十讲: 第十 ...

  3. 孙鑫VC学习笔记:多线程编程

    孙鑫VC学习笔记:多线程编程 SkySeraph Dec 11st 2010  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modified ...

  4. 孙鑫VC学习系列教程

    教程简介 1.循序渐进 从Win32SDK编程开始讲解,帮助大家理解掌握Windows编程的核心 -- 消息循环机制. 2.通俗易懂 编程语言枯燥难懂,然而通过孙鑫老师形象化的讲解,Windows和M ...

  5. 孙鑫 VC++深入详解第14课——TCP通信/UDP通信(转)

    原文转自 http://blog.csdn.net/supersonico/article/details/18900319 一.用VC++来编写TCP 服务器/客户端的简单程序. 注意事项: 1.要 ...

  6. 孙鑫视频VC++深入详解学习笔记

    孙鑫视频VC++深入详解学习笔记 VC++深入详解学习笔记 Lesson1: Windows程序运行原理及程序编写流程 Lesson2: 掌握C++基本语法 Lesson3: MFC框架程序剖析 Le ...

  7. 孙鑫视频学习:VS2010中找不到【Tab order】菜单项

    在学习孙鑫视频中,修改Tab顺序时,找不到VC6.0中提到的[Layout]->[Tab order]菜单项,但VC2010中可以用Ctrl+D调出来Tab顺序,或者[格式]->[Tab键 ...

  8. 孙鑫视频学习:改变窗口过程函数中出现error C2440错误的解决方法

    在Visual Studio 2010中,即使代码是完完全全按照孙鑫视频中的敲,也会在出现error C2440,这是因为开发平台由VC6.0升级至VS2010,需要将原有的项目迁移.VS2010对消 ...

  9. 孙鑫视频学习:关于Visual Studio 2010中MFC工程的消息WM_INITDIALOG找不到的问题

    学习孙鑫的那个深入详解C++视频时,有一处给编辑框空间改写窗口过程函数的例子,其中需要添加一个WM_INITDIALOG消息响应函数,但在类向导的消息栏下找不到WM_INITDIALOG消息.解决方法 ...

随机推荐

  1. [Algo] 118. Array Deduplication IV

    Given an unsorted integer array, remove adjacent duplicate elements repeatedly, from left to right. ...

  2. Java 中的接口有什么作用?以及接口和其实现类的关系?

    Java 中的接口有什么作用? - Ivony的回答 - 知乎 https://www.zhihu.com/question/20111251/answer/16585393 这是一个初学者非常常见的 ...

  3. 题解 P6005 【[USACO20JAN]Time is Mooney G】

    抢第一篇题解 这题的思路其实就是一个非常简单的dijkstra,如果跑到第一个点的数据不能更新的时候就输出 很多人不知道要跑多少次才停.其实这题因为答案要减去 T*c^2,而每条边的值 <= 1 ...

  4. 面向对象 part6 继承

    继承 js实现的是实现继承/也就是继承实际的方法 //主要依赖:原型链 //基本思路: 就是一个引用类型继承另一个引用类型的属性和方法 详细:构造函数,实例,原型之间的关系.每个构造函数都有一个原型对 ...

  5. Linux文件共享的实现方式

    前两天跟老师去北京开了一个会议,好久没学习了,今天才回学校,其中的辛酸就不说了.来正文: 1.什么是文件共享 (1).文件共享就是同一个文件(同一个文件指的是同一个inode,同一个pathname) ...

  6. 关于 TCP 和 UDP 协议

    TCP\UDP 两者区别总结:https://blog.csdn.net/striveb/article/details/84063712 图解HTTP,状态码,TCP.UDP等网络协议相关总结(持续 ...

  7. cifar数据集下载

    https://www.cs.toronto.edu/~kriz/cifar.html Version Size md5sum CIFAR-10 python version 163 MB c58f3 ...

  8. 金蝶cloud成本核算流程

  9. StartDT AI Lab | 需求预测引擎如何助力线下零售业降本增效?

    在当下经济明显进入存量博弈的阶段,大到各经济体,小到企业,粗放的增长模式已不适宜持续,以往高增长的时代已经成为过去,亟需通过变革发掘新的增长点.对于竞争激烈的线下零售行业而言,则更需如此. 零售行业一 ...

  10. C# 类的解构

    C#对类的解构,必须在该类内实现Deconstruct方法,并且返回类型为void ,并用out参数返回各个部分. using System; using System.Text; namespace ...