中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 工具条
类似OICQ自动滑动的隐藏的实现,以及源代码
作者:111222 时间:2001-10-18 10:26 出处:互联网 责编:chinaitpower
              摘要:类似OICQ自动滑动的隐藏的实现,以及源代码

 

OICQ以及东方快车一些软件可以由用户设置隐藏到屏幕上端,鼠标划过时显示

实现起来十分简单,窗口滑动利用MoveWindow( RECT* rc, BOOL bReDraw);

检测鼠标是否划过窗口上方有三种方法

一,利用_TrackMouseEvent

 具体实现:

//填加消息映射
//.......

ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave)

//.......
//消息映射结束

void CSpDlg::OnMouseMove(UINT nFlags, CPoint point)
{
    TRACKMOUSEEVENT stTRACKMOUSEEVENT;
    stTRACKMOUSEEVENT.cbSize = sizeof(stTRACKMOUSEEVENT);
    stTRACKMOUSEEVENT.hwndTrack=m_hWnd;
    stTRACKMOUSEEVENT.dwFlags=TME_LEAVE;
    _TrackMouseEvent(&stTRACKMOUSEEVENT);    
    CDialog::OnMouseMove(nFlags, point);
}

LRESULT CSpDlg::OnMouseLeave(WPARAM wParam, LPARAM lParam)
{

   /*这里检查鼠标位置

       是为了避免鼠标滑过控件时候产生的WM_MOUSELEAVE干扰正常应用*/

    POINT pt;
    RECT rcWindow;
    GetWindowRect( &rcWindow );
    GetCursorPos( &pt );
    if(pt.x > rcWindow.right ¦¦ pt.x < rcWindow.left
        ¦¦ pt.y < rcWindow.top ¦¦ pt.y > rcWindow.bottom)/*当鼠标移动到窗口矩形外*/
    MessageBox("鼠标离开了对话框",NULL,MB_OK);
    return 0;
}

 

二,SetCapture();函数,参见MSDN,我们详细说下面的方法

三,利用WM_TIMER随时检查鼠标位置,判断是否在窗口上方。

void CAutoHideDlg::OnTimer(UINT nIDEvent)
{
 
 POINT pt;
 RECT rcWindow;
 GetWindowRect( &rcWindow );
 GetCursorPos( &pt );
 if(pt.x > rcWindow.right || pt.x < rcWindow.left
  || pt.y < rcWindow.top || pt.y > rcWindow.bottom)  
 {
  /*鼠标在窗口外*/
 }
 else 
 {
  /*在窗口内*/ 
 }
 CDialog::OnTimer(nIDEvent);
}

算了,不说了,这部分实现起来实在是太简单,没什么好说的,想琢磨看代码吧

http://263.csdn.net/FileBBS/files/2001_6/T_150_1.zip

上面是旧的版本

下面是新的,不过都存在一个问题,详看http://www.csdn.net/expert/TopicView.asp?id=161974

http://263.csdn.net/FileBBS/files/2001_6/T_171_1.zip

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有