实现QQ主界面效果[图]
2008-06-10 12:48
295 查看
实现QQ主界面的滚动效果[图]1. GC实现QQ的主界面截图
2.实现方法
最主要的计算各个组和头像的位置信息,有了位置信息,画图就很方便了.(画图请参考本专栏其他文章)
2.1 一些概念:
项 : 组和头像,如果组合并,那么这个组只有组1项,如果展开那么 组+ 组成员的个数
m_scrollIndex : 滚动了几个项(滚动时计算)
m_scrollY : 实际滚动的像数(通过m_scrollIndex计算得到,滚动时计算)
(obj,group,index): 通过OnMouseMove得到的位置信息
obj表示在组或者头像,group表示哪个组,index表示group中的哪个头像
当obj表示组时,index就不起作用
2.2 鼠标位置信息的表达
//32位int 表示OnMouseMove位置信息
//2006-09-21
// |--------|--------|----------------|
// 8位类型 8位组号 16位头像索引
typedef int TREEHIT;
#define MAKETREEHIT(obj,group,index) ((obj << 24)+(group << 16)+index)
#define TREEHITOBJ(hit) (hit >> 24)
#define TREEHITGROUP(hit) ((hit & 0x00ff0000)>>16)
#define TREEHITINDEX(hit) (hit & 0x0000ffff)
2.3 组和头像位置信息的计算
由于图象有大小的区分,并且组的高度和大小头像又不一样,所以滚动的时候要计算滚动
了几个项.这样可以保证,每次滚动多是按项来滚动的,而不是固定的像数.
计算第n个组的第m个头像的RECT,首先从第一组开始算起(高度从0开始),算到第n个组第m头像时,然后减去滚动的实际像数m_scrollY ,就是实际的RECT,如果不和可见区域相交,那么就不画图.
2.实现方法
最主要的计算各个组和头像的位置信息,有了位置信息,画图就很方便了.(画图请参考本专栏其他文章)
2.1 一些概念:
项 : 组和头像,如果组合并,那么这个组只有组1项,如果展开那么 组+ 组成员的个数
m_scrollIndex : 滚动了几个项(滚动时计算)
m_scrollY : 实际滚动的像数(通过m_scrollIndex计算得到,滚动时计算)
(obj,group,index): 通过OnMouseMove得到的位置信息
obj表示在组或者头像,group表示哪个组,index表示group中的哪个头像
当obj表示组时,index就不起作用
2.2 鼠标位置信息的表达
//32位int 表示OnMouseMove位置信息
//2006-09-21
// |--------|--------|----------------|
// 8位类型 8位组号 16位头像索引
typedef int TREEHIT;
#define MAKETREEHIT(obj,group,index) ((obj << 24)+(group << 16)+index)
#define TREEHITOBJ(hit) (hit >> 24)
#define TREEHITGROUP(hit) ((hit & 0x00ff0000)>>16)
#define TREEHITINDEX(hit) (hit & 0x0000ffff)
2.3 组和头像位置信息的计算
由于图象有大小的区分,并且组的高度和大小头像又不一样,所以滚动的时候要计算滚动
了几个项.这样可以保证,每次滚动多是按项来滚动的,而不是固定的像数.
计算第n个组的第m个头像的RECT,首先从第一组开始算起(高度从0开始),算到第n个组第m头像时,然后减去滚动的实际像数m_scrollY ,就是实际的RECT,如果不和可见区域相交,那么就不画图.
相关文章推荐
- QQ主界面的滑动效果的实现(xml中定义布局属性)
- 实现QQ主界面效果[图]
- 实现QQ主界面效果[图]
- 实现QQ主界面效果[图]
- iOS粒子路径移动效果 iOS实现QQ拖动效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- 自定义控件三部曲之绘图篇(十五)——QQ红点拖动删除效果实现(基本原理篇)
- 【HTML5】实现QQ聊天气泡效果
- Android实现类似QQ的滑动删除效果
- 基于Qt的类似QQ好友列表抽屉效果的实现
- iPhone实现QQ等app中右拖动屏幕返回上一层视图切换的效果(继承UINavigationController)
- 实现QQ抽屉效果
- [置顶] JQuery实现类似QQ下拉菜单式的效果
- js实现带缓冲效果的仿QQ面板折叠菜单代码
- 实现QQ的抽屉效果
- Android_UI 仿QQ侧滑菜单效果的实现
- C# 模仿QQ、MSN消息提示系列 三、实现多个提示效果
- WPF—QQ界面(二):QQ状态切换效果的实现
- C# 模仿QQ、MSN消息提示系列 三、实现多个提示效果