金山界面库分析(10)
来源:互联网 发布:java简历ssh项目 编辑:程序博客网 时间:2024/05/21 06:56
鼠标消息、窗口状态的管理
首先来看CBkDialogViewImpl类的鼠标消息处理方法
OnMouseLeave方法:
如果现在处于非跟踪的状态,那么调用_TrackMouseEvent并设置m_bTrackFlag;
之后获取现在鼠标所悬停的控件,通过调用header,body和footer的BkGetHWNDFromPoint方法来判断,因为这三者覆盖整个客户区域
如果当前悬停控件和记录的hover控件不一致,那么进行更新操作
OnMouseLeave方法:
设置不跟踪状态
如果hover控件存在,那么重置状态
如果pushdown控件存在,那么重置状态
OnLButtonDown方法:
查看是否是点击标题栏,如果是,调用最大化,最小化和恢复处理
在非标题栏点击情况下,设置capture状态
OnLButtonUp方法
ReleaseCapture,设置控件状态
OnLButtonDblClk方法
在双击标题栏情况下最大化或者恢复窗口
在类CBkWindow 中,使用m_dwState变量来标示控件的状态,主要由以下几种状态:
// State Define
enum{
BkWndState_Normal = 0x00000000UL, //正常
BkWndState_Hover = 0x00000001UL, //悬停
BkWndState_PushDown = 0x00000002UL, //按下
BkWndState_Check = 0x00000004UL, //选中
BkWndState_Invisible = 0x00000008UL, //不可见
BkWndState_Disable = 0x00000010UL, //失活
};
主要使用ModifyState方法来改变控件的状态。
- 金山界面库分析(10)
- 金山界面库分析(1)
- 金山界面库分析(2)
- 金山界面库分析(3)
- 金山界面库分析(4)
- 金山界面库分析(5)
- 金山界面库分析(6)
- 金山界面库分析(7)
- 金山界面库分析(8)
- 金山界面库分析(9)
- 金山界面库分析(0)
- 金山界面库
- 金山界面库
- 金山界面库源码
- 金山界面库
- 金山界面库VC向导
- 金山界面库VC向导
- 金山界面库 for VC
- byte转换成int
- Xcode 自动提示前面小图标含义
- 输出四个数的最大值
- 自定义UITableViewCell 的选中背景图片
- jBPM4.4 eclipse插件安装(转载)
- 金山界面库分析(10)
- Linux时间子系统之五:低分辨率定时器的原理和实现
- c++程序中如何简单调用批处理文件
- Linux常用系统查看命令(持续更新)
- 谁在掌管着OpenStack项目
- AFNetWorking in Background runing in ten minutes
- 你必须知道的 34 个简单实用的 Ubuntu 快捷键
- 网络序与主机序
- Android系统的开机画面显示过程分析