TrackMouseEven示例讲解
来源:互联网 发布:oracle怎么创建数据库 编辑:程序博客网 时间:2024/06/06 00:19
TrackMouseEven这里讲两个功能:
1:当鼠标离开指定窗口时触发OnMouseLeave(WPARAM wParam, LPARAM lParam);
2:当鼠标在指定窗口悬停指定时间(毫秒)后触发OnMouseHover(WPARAM wParam, LPARAM lParam);
示例讲解,不罗嗦了:
1:建立一个对话框程序,关联一个类如:CTestTrackMouseEventDlg;
2:添加到
//{{AFX_MSG(CTestTrackMouseEventDlg)
afx_msg void OnMouseLeave(WPARAM wParam = 0, LPARAM lParam = 0);
afx_msg void OnMouseHover(WPARAM wParam = 0, LPARAM lParam = 0);
//}}AFX_MSG
3:
BEGIN_MESSAGE_MAP(CTestTrackMouseEventDlg, CDialog)
//{{AFX_MSG_MAP(CTestTrackMouseEventDlg)
ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
ON_MESSAGE(WM_MOUSEHOVER, OnMouseHover)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
4:
void CTestTrackMouseEventDlg::OnMouseLeave(WPARAM wParam, LPARAM lParam)
{
//MessageBox("OnMouseLeave");
static int i = 0 ;
CString str; str.Format("OnMouseLeave %d",i++);
SetWindowText( str );
}
void CTestTrackMouseEventDlg::OnMouseHover(WPARAM wParam, LPARAM lParam)
{
//MessageBox("OnMouseHover");
static int i = 0 ;
CString str; str.Format("OnMouseHover %d",i++);
SetWindowText( str );
}
5:
void CTestTrackMouseEventDlg::OnButton1OnMouseLeave() //鼠标离开对话框时,启动触发OnMouseHover;
{
// TODO: Add your control notification handler code here
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.hwndTrack = this->m_hWnd;
tme.dwFlags = TME_LEAVE;
_TrackMouseEvent(&tme);
}
void CTestTrackMouseEventDlg::OnButton2OnMouseHover() //鼠标在对话框悬停是定时间,启动触发OnMouseHover;
{
// TODO: Add your control notification handler code here
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.hwndTrack = this->m_hWnd;
tme.dwFlags = TME_HOVER;
tme.dwHoverTime = 1000;
_TrackMouseEvent(&tme);
}
6://如果将以上两个触发函数添加到OnMouseMove消息函数中就可以实时监测鼠标了,当然不是必须的;
void CTestTrackMouseEventDlg::OnMouseMove(UINT nFlags, CPoint point) //
{
// TODO: Add your message handler code here and/or call default
OnButton1OnMouseLeave();
OnButton2OnMouseHover();
CDialog::OnMouseMove(nFlags, point);
}
- TrackMouseEven示例讲解
- Oracle简单示例讲解
- Oracle简单示例讲解
- JNI示例及讲解
- NGUI示例-UIAnchor讲解
- NGUI示例-Interaction讲解
- NGUI示例-Menu讲解
- NGUI示例-ControlIerInput讲解
- MVVM示例讲解
- promise应用示例讲解
- ActiveMQ入门示例讲解
- lambda表达式示例讲解
- MVVM示例讲解
- [转]Oracle简单示例讲解
- 正则表达式PPT、示例讲解
- 深入浅出JSON(json示例讲解)
- Android Jni代码示例讲解
- Android Jni代码示例讲解
- 苹果可能会失去中国的iPad商标
- ext 实现进度条效果
- WPF项目添加activex控件
- 泛型 java 循环对了
- Java ssh 面试题
- TrackMouseEven示例讲解
- OO真经——关于面向对象的哲学体系及科学体系的探讨
- emacs-muse 管理工程时候容易犯的错误
- oracle索引与like条件的关系(转)
- 使用KeyBoardUtil处理软键盘的弹出遮住输入框的问题
- 让cygwin启动时加载.bashrc
- hdu 1698 Just a Hook(线段树成)
- Android PinyinIME 源码笔记 -- 0. 简介
- Matlab增加块注释