MFC对话框禁止移动 使标题栏不响应鼠标消息 通过客户区移动窗体 OnNcHitTest()的实现

简介:   //这个函数允许我们对 windows鼠标消息进行处理  对于基类函数的返回值  我们可以通过判断消息类型来进行不同的处理 //也就是说 我们可以对鼠标消息做任意处理   比如 是菜单栏上的消息 我们可以返回标题栏的值 //对应的消息类型有如下   查找MSDN此函数的 值有介绍...

 

//这个函数允许我们对 windows鼠标消息进行处理  对于基类函数的返回值  我们可以通过判断消息类型来进行不同的处理
//也就是说 我们可以对鼠标消息做任意处理   比如 是菜单栏上的消息 我们可以返回标题栏的值
//对应的消息类型有如下   查找MSDN此函数的 值有介绍
UINT CMyDlg::OnNcHitTest(CPoint point)
{

      UINT nFlags= CDialog::OnNcHitTest(point);   //调用基类的OnNcHitTest获得返回值 
       if(nFlags==HTCAPTION||nFlags==HTSYSMENU)  //如果鼠标消息是在 标题栏上或者系统菜单栏  我们就返回FALSE 不进行处理
    {
     return FALSE ;
    } 
    else if(nFlags==HTCLIENT)   //可以通过客户区域移动窗体但是不能通过标题栏移动
     return  HTCAPTION ;
    else
     return nFlags;

}


 

下面是一些测试枚举值

::OnNcHitTest

  afx_msg UINT OnNcHitTest( CPoint point );
  返回值:下面列出的鼠标击中测试枚举值之一。
  · HTBORDER 在不具有可变大小边框的窗口的边框上。
  · HTBOTTOM 在窗口的水平边框的底部。
  · HTBOTTOMLEFT 在窗口边框的左下角。
  · HTBOTTOMRIGHT 在窗口边框的右下角。
  · HTCAPTION 在标题条中。
  · HTCLIENT 在客户区中。
  · HTERROR 在屏幕背景或窗口之间的分隔线上(与HTNOWHERE相同,除了Windows的DefWndProc函数产生一个系统响声以指明错误)。
  · HTGROWBOX 在尺寸框中。
  · HTHSCROLL 在水平滚动条上。
  · HTLEFT 在窗口的左边框上。
  · HTMAXBUTTON 在最大化按钮上。
  · HTMENU 在菜单区域。
  · HTMINBUTTON 在最小化按钮上。
  · HTNOWHERE 在屏幕背景或窗口之间的分隔线上。
  · HTREDUCE 在最小化按钮上。
  · HTRIGHT 在窗口的右边框上。
  · HTSIZE 在尺寸框中。(与HTGROWBOX相同)
  · HTSYSMENU 在控制菜单或子窗口的关闭按钮上。
  · HTTOP 在窗口水平边框的上方。
  · HTTOPLEFT 在窗口边框的左上角。
  · HTTOPRIGHT 在窗口边框的右上角。
  · HTTRANSPARENT 在一个被其它窗口覆盖的窗口中。
  · HTVSCROLL 在垂直滚动条中。
  · HTZOOM 在最大化按钮上。
目录
相关文章
|
关系型数据库 索引
DB2查询主键、索引、表约束
DB2查询主键、索引、表约束
1148 0
|
存储 NoSQL Redis
10)Redis 的管道技术
10)Redis 的管道技术
191 0
|
机器学习/深度学习 算法 数据可视化
【python kaggle机器学习】泰坦尼克号 - 灾难中的机器学习详解
【python kaggle机器学习】泰坦尼克号 - 灾难中的机器学习详解
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
1558 0
MFC打开控制台的2种方式
MFC打开控制台的2种方式
493 0
基于模糊PID控制器的风力温度控制系统simulink建模与仿真
**课题概述:** 设计一个室温控制系统,保持室内温度在23ºc,当温度超出范围时,电风扇自动调整档位。系统监控温度、压强、风速、通风量和风扇参数。 **系统仿真:** 使用MATLAB2022a进行仿真。 **核心原理:** 结合模糊逻辑和PID控制的系统,模糊逻辑处理不确定信息,调整PID参数以优化温度控制。 **模糊PID:** 输入(温度误差e,误差变化率ec),输出(PID参数调整量)。模糊规则库决定参数调整,模糊推理生成输出,清晰化处理转换为实际参数调整,改善系统性能。 **整体结构:** 包含模糊逻辑控制器和PID调节,动态适应环境变化,确保设备稳定高效运行。
【权限维持】Windows&自启动&映像劫持&粘滞键&辅助屏保后门&WinLogon
【权限维持】Windows&自启动&映像劫持&粘滞键&辅助屏保后门&WinLogon
273 1
|
Java Python Spring
spring boot读取resources目录下的python脚本执行
spring boot读取resources目录下的python脚本执行
1881 0
spring boot读取resources目录下的python脚本执行
|
存储 机器学习/深度学习 人工智能
向量数据库:新一代的数据处理工具
向量数据库是一种特殊类型的数据库,它可以存储和处理向量数据。向量数据通常用于表示多维度的数据点,例如在机器学习和人工智能中使用的数据。在向量数据库中,数据被表示为向量,这些向量可以在多维空间中进行比较和搜索。这种数据库的一个关键特性是它能够快速地找到与给定向量最相似的其他向量,这是通过计算向量之间的距离(例如欧氏距离或余弦相似度)来实现的。
3025 0
向量数据库:新一代的数据处理工具
|
机器学习/深度学习 存储 自然语言处理
Data2Vec:视觉、语音和语言的语境化目标表征的高效自监督学习
目前的自监督学习算法通常是特定模态的,需要大量的计算资源。为了解决这些问题,我们提高了data2vec的训练效率,这是一个跨越多种模式的学习目标
389 0