面试题系列(11)

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安装失败
  1. 第八章 图形软件开发  双缓冲防闪烁技术
    第一节    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:串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值