观看 孙鑫 老师的《VC++ 深入编程视频教程》日记

首先得感谢孙鑫老师的无私奉献,为我们免费提供了这么完整的视频教程,其他有兴趣的朋友可以到其主页上观看、下载:http://www.sunxin.org/,其提供的免费视频教程有:《VC++ 深入编程》、《快速掌握 Java》、《HTML 语言速成》、《HTTP 协议详解》、《Eclipse 开发工具介绍》、《C++虚函数机制讲解

另外看到这么一篇《大量计算机方面的学习视频》,值得看看并下载一些慢慢学习。

以下是记录一些自己观看《VC++ 深入编程视频教程》的笔记

1、实例句柄与窗口句柄。我的理解就是,每个程序每运行一次后就是一个实例,一个实例可以有窗口也可以没有窗口,不管有没有窗口,实例句柄肯定存在,而对于没有窗口的实例那就没有窗口句柄而只有实例句柄了。或许也可以这样理解:实例就是parent,而窗口就是child

2、GetDC与ReleaseDC必须成对使用。以前自己在编写一个软件的时候就曾经犯过这个错误,由于当时不知道GetDC必须搭配ReleaseDC使用,结果程序总是在运行一段时间后出错,隔了好久才在csdn上无意看到一篇讲到了GetDC与ReleaseDC必须成对的使用,否则会造成内存的泄漏。前2天看到网上一个QQ对对碰的VC代码,在使用了GetDC又是没有使用ReleaseDC的,因此,今天在看这个《VC++ 深入编程视频教程》时特意把这点记上。补充:CreateDC与DeleteDC也是必须成对使用的。

3、BeginPaint与EndPaint只用于WM_PAINT消息中,与GetDC、ReleaseDC一样,BeginPaint与EndPaint也是必须成对使用,用BeginPaint获取DC后使用EndPaint释放DC。在WM_PAINT消息中只能用BeginPaint、EndPaint而不能用GetDC、ReleaseDC,BeginPaint、EndPaint也只能用于WM_PAINT消息中。参考:《Windows程序设计阅读笔记(4)-得到设备内容HANDLE

4、变量、常量作比较时,常量写在前面。如愿意要写if(x==1)结果写成了if(x=1),这样的错误编译时不会报错,但在运行时就可能出现意外的情况;而如果将常数写在前面,讲“==”错写为“=”如写成if(1=x)时编译器即会报错:常量不能被赋值。

5、在C++中,struct与class等同使用,区别仅仅在于如果未指定成员类型时,struct是默认为public,而class是默认为private。

6、重复引用同一个头文件可能会导致“重复定义”的错误,可以使用预编译指令来避免。如:

#ifndef xxx

#define xxx    //此处只是用于避免重复定义而不是为了下面的使用,因此此处不需定义一个值

class class_name{};

#endif

7、利用FromHandle可以从句柄获得对象的指针。

8、调用类的静态成员函数/变量时可以不必通过类的对象或对象的指针来调用,可以直接使用“类名::函数名”或“类名::变量名”的形式来调用。因为静态成员函数/变量是属于类本身,在类加载的时候即为它们分配了空间。而非静态成员函数/变量是属于类的某一个具体的对象的,因此必须由对象或对象的指针来调用。

静态成员函数不能访问非静态成员变量!静态成员变量必须在类的外部初始化。当然如果并不打算用到静态成员变量,此时你可以不初始它。

9、视频中没有讲到的:在画图后,若窗口发生重绘,已画好的线、图将会消失,如果要保留的话该怎么做呢?先记下这个问题,慢慢找找答案。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值