104.
sockaddr sockaddr_in
105.常量在前变量在后
106 const char *
107.匈牙利命名法:
int long 定义:int nSel;long nTel;
HANDLE hInst
CString szName,szPass
CString strAddr
LPCSTR pszname
DWORD dwID
如果是成员变量,开头以“m_”
如果是全局变量,开头以“g_”开头
108.Insertcolumn插入没效果
109MSDN安装失败
- 第八章 图形软件开发 双缓冲防闪烁技术
第一节 CMemDC封装类
第二节 图像透明技术
第三节 动画技术
第四节 透明动画
第五节 不规则窗口
第六节 双缓冲防闪烁技术
第七节 图层软件架构
第八节 CDC类成员函数介绍
一、变量的生命期:
1、临时变量:生命期最短。例如:int i;//访问速度最快
2、全局变量:生命期最长。例如:CPoint g_pos;
3、类成员变量:类成员变量的生命期与对象相同。在构造函数内初始化
例如:int m_nIndex;类成员变量访问速度比全局变量和静态变量还慢
二、闪烁问题:界面更新时有超过1次以上的输出,并且多次输出的区域有重叠
1、重叠面积越大闪烁越严重
2、输出的次数越多闪烁越严重
三、解决闪烁问题的关键,就是禁止在界面更新中多次画面输出。具体办法可以归纳为以下几种:
a)非客户区和客户区不能同步更新画面造成的闪烁,可以去掉窗口的标题和边框。只在WM_PAINT消息回调时绘画,而在WM_NCPAINT消息回调中不绘画。例如:QQ、360等软件皆是如此;
b)客户区内背景和前景不能同步更新画面,在WM_ERASEBKGND背景更新和WM_PAINT前景更新两个消息中,只选择一种消息回调时绘画而在外一个消息回调时不绘画;
c)Invalidate强制更新客户区函数,代入FALSE只更新前景而不更新背景,可以减少客户区闪烁。或者说代入FALSE只通知WM_PAINT消息回调,而不通知WM_ERASEBKGND消息回调;
d)即使只在客户区中输出画面,如果画面输出的背景图和角色图形太多,还会发生背景图和角色之相互覆盖造成画面闪烁。解决这个问题的方法必须使用“双缓冲防闪烁”技术
四、MFC数据集合类:
1、CList:双向链表
2、CArray:动态数组
3、CMap:数据映射类(哈希表)
4、CString:串
五、STL标准数据集合类(标准模板库)
1、std::list:双向(环形)链表
2、std::vect:动态数组
3、std::map:映射类(二叉树)
4、std::string:串