如何判断一个对话框中的button是否获得焦点

jimette 2012-12-24 03:54:36
当我把鼠标移到对话框上的button按钮时,我想知道是否移到上面, 不准使用button的onmousemove!

让对话框不响应onmouseleave消息(只是在移到对话框上的控件时候不响应 )
...全文
335 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
gfm688 2012-12-24
  • 打赏
  • 举报
回复

void CTestDlg::OnMouseMove(UINT nFlags, CPoint point) 
{
  if (m_bMouseMove == FALSE)
  {
    TRACKMOUSEEVENT tme;
    tme.cbSize = sizeof(tme);
    tme.dwFlags = TME_LEAVE;
    tme.hwndTrack = GetSafeHwnd();
    _TrackMouseEvent(&tme);
    m_bMouseMove = TRUE;
  }

  CDialog::OnMouseMove(nFlags, point);
}

void CTestDlg::OnMouseLeave(WPARAM wParam, LPARAM lParam) 
{
  POINT pt;
  GetCursorPos(&pt);
  ScreenToClient(&pt);
  if (ChildWindowFromPoint(pt) == NULL)
  {
    AfxMessageBox("MouseLeave");
  }
  m_bMouseMove = FALSE;
}
傻X 2012-12-24
  • 打赏
  • 举报
回复
在那帖已回,楼主自己看下。最简单的就是自己再判断次。
jimette 2012-12-24
  • 打赏
  • 举报
回复
引用 3 楼 VisualEleven 的回复:
引用 楼主 sha_jinhao 的回复:当我把鼠标移到对话框上的button按钮时,我想知道是否移到上面, 不准使用button的onmousemove! 让对话框不响应onmouseleave消息(只是在移到对话框上的控件时候不响应 ) 对话框类的PreTranslateMessage类过滤WM_MOUSEMOVE消息,判断当前鼠标的位置是否在按钮控件上CRe……
大神看看这个http://bbs.csdn.net/topics/390326597
jimette 2012-12-24
  • 打赏
  • 举报
回复
引用 11 楼 tiger9991 的回复:
引用 3 楼 VisualEleven 的回复:引用 楼主 sha_jinhao 的回复:当我把鼠标移到对话框上的button按钮时,我想知道是否移到上面, 不准使用button的onmousemove! 让对话框不响应onmouseleave消息(只是在移到对话框上的控件时候不响应 ) 对话框类的PreTranslateMessage类过滤WM_MOUSEMOV……
不要这个 大神 看看这个吧 http://bbs.csdn.net/topics/390326597
jimette 2012-12-24
  • 打赏
  • 举报
回复
引用 8 楼 gfm688 的回复:
是不是想在对话框的mouseleave中判断当前鼠标是否在按钮上? GetCursorPos,然后ChildWindowFromPoin,应该可以
是这个意思! CPoint ptCursor; ::GetCursorPos( &ptCursor); HWND hwnd = NULL; hwnd = ::WindowFromPoint( ptCursor); if ( hwnd != NULL) { m_bLeave = TRUE; return; } 当移出的时候就在view中移动 hwnd不== null ;
傻X 2012-12-24
  • 打赏
  • 举报
回复
引用 3 楼 VisualEleven 的回复:
引用 楼主 sha_jinhao 的回复:当我把鼠标移到对话框上的button按钮时,我想知道是否移到上面, 不准使用button的onmousemove! 让对话框不响应onmouseleave消息(只是在移到对话框上的控件时候不响应 ) 对话框类的PreTranslateMessage类过滤WM_MOUSEMOVE消息,判断当前鼠标的位置是否在按钮控件上CRe……
这个是正解。
jimette 2012-12-24
  • 打赏
  • 举报
回复
引用 3 楼 VisualEleven 的回复:
引用 楼主 sha_jinhao 的回复:当我把鼠标移到对话框上的button按钮时,我想知道是否移到上面, 不准使用button的onmousemove! 让对话框不响应onmouseleave消息(只是在移到对话框上的控件时候不响应 ) 对话框类的PreTranslateMessage类过滤WM_MOUSEMOVE消息,判断当前鼠标的位置是否在按钮控件上CRe……
void CPageDemoView::OnMouseMove(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CPoint ptCursor; GetCursorPos( &ptCursor); HWND hwnd = NULL; hwnd =:: WindowFromPoint(point); TRACE(_T("%p\n"), hwnd); CScrollView::OnMouseMove(nFlags, point); } 大牛 我在view中实验一下 为什么view里面没有控件 hwnd不== null!
gfm688 2012-12-24
  • 打赏
  • 举报
回复
ChildWindowFromPoint
gfm688 2012-12-24
  • 打赏
  • 举报
回复
是不是想在对话框的mouseleave中判断当前鼠标是否在按钮上? GetCursorPos,然后ChildWindowFromPoin,应该可以
jimette 2012-12-24
  • 打赏
  • 举报
回复
引用 3 楼 VisualEleven 的回复:
引用 楼主 sha_jinhao 的回复:当我把鼠标移到对话框上的button按钮时,我想知道是否移到上面, 不准使用button的onmousemove! 让对话框不响应onmouseleave消息(只是在移到对话框上的控件时候不响应 ) 对话框类的PreTranslateMessage类过滤WM_MOUSEMOVE消息,判断当前鼠标的位置是否在按钮控件上CRe……
http://bbs.csdn.net/topics/390326597
jimette 2012-12-24
  • 打赏
  • 举报
回复
引用 5 楼 gfm688 的回复:
晕,只看了标题,没看内容,那不叫焦点 WM_MOUSEMOVE 就可以,为啥不用?
http://bbs.csdn.net/topics/390326597
gfm688 2012-12-24
  • 打赏
  • 举报
回复
晕,只看了标题,没看内容,那不叫焦点 WM_MOUSEMOVE 就可以,为啥不用?
gfm688 2012-12-24
  • 打赏
  • 举报
回复
GetFocus
Eleven 2012-12-24
  • 打赏
  • 举报
回复
引用 楼主 sha_jinhao 的回复:
当我把鼠标移到对话框上的button按钮时,我想知道是否移到上面, 不准使用button的onmousemove! 让对话框不响应onmouseleave消息(只是在移到对话框上的控件时候不响应 )
对话框类的PreTranslateMessage类过滤WM_MOUSEMOVE消息,判断当前鼠标的位置是否在按钮控件上CRect::PtInRect() 或者WindowFromPoint()
小新蜡笔 2012-12-24
  • 打赏
  • 举报
回复
SetFocus()
Eleven 2012-12-24
  • 打赏
  • 举报
回复
重写CButton类,添加处理WM_MOUSELEAVE、WM_MOUSEHOVER、WM_MOUSEMOVE消息
以下为视频源码目录: 一、Android入门介绍 视频教程 1.1 android系统介绍 1.2 android系统框架的介绍 1.3 如何搭建android开发环境 1.4 android生命周期的介绍 1.5 android使用全局变量传递数据 1.6 android使用剪切板传递数据 1.7 意图传递数据的第一种方式 1.8 android使用静态变量传递数据 1.9 意图返回结果 二、Android常用布局介绍 2.1 android常用布局属性的介绍 2.2 android线性布局的介绍 2.3 android框架布局的使用 2.4 相对布局的使用 2.5 表格布局的介绍 三、Android解析xml文件 3.1 android解析xml文件 3.2 android使用pull解析xml 3.3 android使用dom解析xml 四、Android之http协议编程 4.1 http协议的介绍 4.2 http协议GET方式获取图片 4.3 http使用Post方式进行提交数据 4.4 http使用apache工具类提交数据 五、 Android解析json数据 5.1 android解析json数据(一) 5.2 android解析json数据(二) 5.3 android使用gson解析 5.4 android使用fastjson解析 六、Android常用UI控件编程 6.1 TextView如何显示丰富的文本 6.2 TextView显示表情图像和文字 6.3 TextView单击链接弹出Activity 6.4 TextView实现跑马灯效果 6.5 EditText输入表情图像 6.6 EditText输入特定的字符 6.7 AutoCompleteTextView完成输入 6.8 Button按钮的焦点变化 6.9 Button图文混排的按钮 6.10 RadioButton单选按钮的使用 6.11 ToggleButton按钮的使用 6.12 CheckBox复选框控件使用 6.13 SeekBar拖动控件的使用 6.14 ImageView的基本用法 6.15 ImageView实现适屏和裁剪图片 6.16 ImageView实现图片旋转和缩放 6.17 ImageView从网络上获取图像 6.18 DatePicker输入日期控件的使用 6.19 时间对话框的使用 6.20 ProgressBar进度条的使用 6.21 RatingBar评分控件的使用 6.22 ScrollView垂直滚动控件的使用 6.23 HorizontalScrollView水平滚动 6.24 Gallery画廊控件 6.25 Spinner下拉列表控件 6.26 ImageSwitcher图片切换控件 6.27 GridView网格控件 6.28 TabHost卡片的使用 6.29 ViewStub惰性装载控件 6.30 ViewPager多页面滑动效果一 6.31 ViewPager多页面滑动效果二 6.32 ListView普通列表控件的使用 6.33 适配器结合ListView控件的使用 七、百度地图实战开发 7.1 百度地图搭建开发环境 7.2 百度地图覆盖物的描述 7.3 百度地图多个覆盖物的描述 7.4 根据范围和检索词发起范围检索 7.5 标注驾车路线搜索 7.6 标注行走路线搜索 7.7 公交换乘路线搜索 7.8 公交路线详情搜索 7.9 在一个地图上显示多条导航路线 7.10 经纬度和地址的转换 八、服务器端JDBC编程 8.1 jdbc框架介绍一 8.2 jdbc框架介绍二 九、服务器端Web编程 9.1 JavaWeb实现用户注册功能一 9.2 JavaWeb实现用户注册功能二 9.3 JavaWeb实现产品表维护一 9.4 JavaWeb实现产品表维护二 9.5 JavaWeb实现产品表维护三 9.6 JavaWeb实现产品表维护四 十、android存储数据和文件 10.1 android读写sdcard 10.2 SharedPreference共享参数 10.3 android操作数据库一 10.4 android操作数据库二 10.5 android操作数据库三 10.6 android操作数据库四 10.7 android操作数据库五 十一、android对话框介绍 11.1 对话框介绍一 11.2 对话框介绍二 11.3 对话框介绍三 11.4 对话框介绍四 十二、android通知的使用 12.1 通知的使用一 12.2 通知的使用二 十三、android菜单的使用 13.1 Android菜单Menu介绍一 13.2 Android菜单Menu介绍

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧