MFC 沿边缘隐藏窗体

原创 2015年07月09日 20:30:58

效果是像QQ一样,贴在屏幕边缘时,窗口自动隐藏。

创建以歌基于对话框的工程,名字为QQHide,

在主窗口的消息映射部分添加ON_WM_TIMER映射宏,代码如下

ON_WM_TIMER() 

这里写图片描述

接着在主窗口的头文件中添加对OnTimer函数的声明

afx_msg void OnTimer(UINT nIDEvent);

如图
这里写图片描述

在OnTimer方法中实现鼠标在窗体位置上的实时检测

void CQQHideDlg::OnTimer(UINT nIDEvent)
{
    CRect rc;
    CRect rect;
    GetWindowRect(&rect);      //该函数返回指定窗口的边框矩形的尺寸
    rc.CopyRect(&rect);
    CPoint pOint;
    GetCursorPos(&pOint);      //该函数检取光标的位置,以屏幕坐标表示
    if (rect.top<0&&PtInRect(rect,pOint))       //PtInRect判断一个点是否在CRect中
    {
        rect.top = 0;
        MoveWindow(rect.left, rect.top, rc.Width(), rc.Height());
    }
    else if (rect.top>-3&&rect.top<3&&!PtInRect(rect,pOint))
    {
        rect.top = 3 - rect.Height();
        MoveWindow(rect.left, rect.top, rc.Width(), rc.Height());
    }
    CDialog::OnTimer(nIDEvent);
}

在程序消息处理中,即在函数OnIniDialog函数中

SetTimer(1, 100, NULL);

隐藏前
这里写图片描述

隐藏后
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Swing中窗体移到屏幕边缘自动隐藏

实现类似qq的屏幕边缘隐藏效果。 使用方法:new WindowAutoHide(window);  //window为java.awt.Window或其子类 根据实际需要,有以下参数可调: i...
  • ycb1689
  • ycb1689
  • 2014年01月03日 09:37
  • 1339

MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化

参考文章:http://blog.csdn.net/zjtchow/article/details/6122320 无边框窗体如何实现用鼠标拖动窗体边缘实现窗体大小变动呢?下面介绍一种方法,通过...
  • daiafei
  • daiafei
  • 2015年10月30日 16:30
  • 984

MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化

MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化
  • zjtchow
  • zjtchow
  • 2011年01月07日 12:54
  • 5517

mfc 一开始隐藏窗体的方法以及原理解析

我研究过,原因及隐藏方法 . MFC对话框应用程序启动时在OnInitDialog()之后会显示对话框的原因如下 MLF_SHOWONIDLE标志 int CDialog::DoModal() ...

WinForm窗体屏幕边缘停靠(窗体靠边吸附代码)

1、方法一 using System; using System.Collections.Generic; using System.ComponentModel; using System.D...

MFC Tab背景颜色及窗体内控件背景颜色更改

整体效果图如下: 1、Tab标签页改变背景颜色 主要参照的是以下链接中的案例进行的修改,有需要的可以参考:http://download.csdn.net/detail/u014272404/979...

MFC 分割窗体

MFC 分割窗体(Splitter Windows)   文档描述MFC中的CSplitterWnd类,该类用来支持窗体的分割和管理分割后每一个子窗格(pane)的大小   1 分割窗...
  • weiqubo
  • weiqubo
  • 2011年12月06日 14:31
  • 1846

MFC屏幕标记之透明窗体(一)

经过查阅资料,要实现屏幕标记,了解到两种办法:一种是通过对当前屏幕进行截图,然后对截图进行相关的标记来实现对当前屏幕的标记;而另外一种则是通过建立一个透明的窗体,将窗体进行置顶,然后对这个透明的窗体进...

MFC控件大小随窗体大小而改变

一。大小和位置都改变 1.首先为窗体类添加CRect m_rect,该成员变量用来记录窗体的当前大小。 2.在类向导里面(Ctrl+W),为窗体添加消息WM_SIZE的响应函数OnSize(); ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC 沿边缘隐藏窗体
举报原因:
原因补充:

(最多只允许输入30个字)