[MFC]MFC的BUTTON控件响应鼠标按下和抬起

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

有效方法:

BOOL CButtontestDlg::PreTranslateMessage(MSG* pMsg)
{
 // TODO: Add your specialized code here and/or call the base class
 if (pMsg->message==WM_LBUTTONDOWN)
 {
  if (pMsg->hwnd == GetDlgItem(IDC_BUTTON1)->m_hWnd)
  {
   SetDlgItemText(IDC_STATIC_SHOW1,"BUN1 DOWN");
  } 
 }

 if (pMsg->message==WM_LBUTTONUP)
 {
  if (pMsg->hwnd == GetDlgItem(IDC_BUTTON1)->m_hWnd)
  {
   SetDlgItemText(IDC_STATIC_SHOW1,"BUN1 UP");
  } 
 }
 return CDialog::PreTranslateMessage(pMsg);
}

 

补充:设置BUTTON控件按下 抬起效果

(CButton*)GetDlgItem(IDC_BUTTON_UP) ->SetState(TRUE)

(CButton*)GetDlgItem(IDC_BUTTON_UP) ->SetState(FALSE)

 

还有以下办法,但是尝试后无法实现,目前还不知道原因

===================================================

获得按钮区域: 
CButton m_Button1; 
CRect rc; 
m_Button1.GetWindowRect(rc); 

vs2010 MFC中如何分别捕获button控件的按下抬起操作(模拟真实按钮使用效果) 【前言】 MFCbutton控件的常规操作是:添加BUTTON->添加事件处理程序->添加响应程序; 该方式在按钮按下并抬起之后响应。但有些情形可能需要对按钮的downup分别响应,类似现实中的真实按钮,按下不动时执行某个操作,松开后执行另一操作,此 时需要分别捕获两种动作。 ps:更为常见的对鼠标操作消息的捕获就不多描述,是对对应消息的响应函数重载,如:OnLButtonDown、On 阅读详情

相关推荐

MFC原创教程:1.0 Draw

使用软件 visual studio 2005 要在程序中划线,需要知道鼠标左键按下时的松开时鼠标的起始坐标。 1.创建单文档MFC应用程序。 2.先以增加一个BUTTON按钮控件为例,说明下添加消息响应的过程。 类视图--右键点击CMainFrame--属性 右侧可以看到: 点击--消息--找到 WM_LBUTTONDOWN--添加。 添加代码: void CMainFra

乡下工程师 4576

响应鼠标按下抬起

响应鼠标按下抬起

MFC学习记录005——VS2019通过按钮拖动窗体(初学者详细步骤)

MFC - 通过按钮拖动无界面的窗体

SYW的博客 1724

MFC 鼠标按下与弹起事件响应

该部分是云台控制的模拟,有窗口的收缩,重载MFC基类实现按钮图标随鼠标点击变形,鼠标左键按下与弹起的事件响应

学习笔记(七):MFC中按钮的抬起按下

MFC中添加按钮的按下的事件很方便,在控件菜单中Add Event Handler Wizard添加BN_CLICKED消息响应函数即可。 但按钮的抬起却没有现成的消息函数可添加,我们可以重写(override)父类的消息预处理函数(PreTranslateMessage)中捕获按钮的抬起按下消息。 virtual BOOL PreTranslateMessage(MSG* pMsg);通

善良的流氓的专栏 8641

MFC按钮控件鼠标按下抬起响应

最近在用MFC这个几百年前的架构做工程的时候发现,其按钮控件没有自带鼠标按下抬起的消息响应函数,因此做了一番研究。 实现很简单,要实自己实现“BOOL PreTranslateMessage(MSG* pMsg);”这个虚类,先在对话框主类的“.h”中声明一下: BOOL PreTranslateMessage(MSG* pMsg);//响应鼠标按下抬起 接着实现下即可: BOOL CButt...

weixinhum 3781

MFC/VS初入门(鼠标响应、对话框按钮设置)详细保姆级

(首先是在VS中新建一个MFC项目) 一、鼠标响应 (一)、添加鼠标的消息响应函数(在项目/类向导中) 以鼠标按下,抬起为例 (二)、 在view的头文件中定义两个点(起点终点),记录鼠标按下抬起的位置。 (三)、把鼠标接收到的两个点(point)赋值给我们定义的点(first,end)。并且强制画一下。 (四)、把上一步里两个点连线画出来 二、对话框 (一)、在资源标签页对话框处,右键点击插入对话框 (二)...

m0_58716661的博客 6859

按钮实现按下抬起不同响应

1)添加新类CMyButton,基类为CButton:   右键单击解决方案,选择菜单添加->类->MFC类,以CButton为基类添加新类CMyButton;   实际上添加了两个文件:MyButton.cppMyButton.h. 2)添加消息映射:   类视图中,

WhatForever的专栏 1734

MFC 实现按钮按下持续执行

MFC开发中,有时需要实现按钮按下时持续执行某项操作,并在松开按钮时停止该操作。比如在运动控制场景中,JOG+JOG-按钮通常需要这样的功能。本文将介绍两种实现这种需求的方法:通过PreTranslateMessage函数在消息调度前进行筛选,或者通过重载CButton类来添加自定义的鼠标事件。

Darker的博客 1627

MFC】判断按钮是按下还是弹起状态

欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Command + B 斜体:Ctrl/Command + I 标题:

可爱的小黑土土博客 428

mfc的CButton

SkinButton.h #ifndef SKINBUTTON_HEAD #define SKINBUTTON_HEAD #pragma once //#include "stdafx.h" #include #include #include #include #include "resource.h" #pragma comment(lib,"gdiplus.lib") //命

125096 2996

VC++ MFC软键盘开发:从原理到实践,实现自定义输入解决方案

在Windows桌面应用开发中,输入处理是核心基础技术之一,涉及消息机制、窗口管理与用户交互。其原理在于应用程序通过接收系统派发的键盘消息来响应用户输入,这构成了人机交互的底层通道。对于需要高度定制化输入界面的场景,如工业控制、触摸屏一体机或安全受限环境,系统自带输入法往往无法满足特定需求,这时开发自定义软键盘的技术价值便凸显出来。通过模拟键盘输入、管理焦点窗口自定义绘制界面,开发者可以构建完全可控的输入解决方案。本文将深入解析使用Visual C++MFC框架从零构建软键盘的关键技术,涵盖SendIn

weixin_33860553的博客 450

C++原生GUI开发:从零实现Win32 API控件系统与事件驱动架构

图形用户界面(GUI)是软件与用户交互的核心层,其底层原理基于事件驱动编程模型消息循环机制。在Windows平台,Win32 API提供了最接近系统底层的GUI开发接口,通过窗口过程、消息分发GDI绘图等核心概念,开发者能够深入理解界面渲染与用户交互的完整流程。掌握这些技术不仅有助于排查界面卡顿、控件响应等常见问题,更能为学习Qt、MFC等高级框架打下坚实基础。本文以C++Win32 API为例,通过实现按钮、文本框等基本控件,系统讲解了消息循环、面向对象控件树设计以及焦点管理等关键技术,帮助开发者

weixin_33895695的博客 385

Python生态GUI框架:Gooey、Pywinauto、PyQuery、JustPy、Maliang、WhakerPy

Python生态GUI框架:Gooey、Pywinauto、PyQuery、JustPy、Maliang、

lonelymanontheway的博客 643

C++实现汉诺塔算法可视化:Win32 GUI与递归分治实战

递归与分治是算法设计的核心思想,通过将复杂问题分解为相似子问题来高效求解。汉诺塔问题正是这一思想的经典体现,其递归解法清晰地展示了分治策略的技术价值。在算法可视化领域,将抽象逻辑转化为直观图形能极大提升教学效果与理解深度。本文聚焦于使用C++结合Win32 API与GDI+图形库,从零构建一个汉诺塔算法演示程序。通过MVC架构分离数据模型、控制逻辑与图形界面,详细讲解了递归算法实现、平滑动画插值、多线程防卡顿等工程实践。项目不仅实现了盘子移动的实时动画演示,还涵盖了窗口创建、消息循环、资源管理等底层GUI编

weixin_30924087的博客 326

MFC按钮控件Button按下弹起事件实现示例

MFC按钮控件Button按下弹起事件实现示例

沐阳2100的博客 2万+

【笔记】MFC对多个控件实现鼠标左键按下触发,抬起停止

1.捕捉鼠标左键按下/抬起信号,“9999”为标志位,用“1”“0”区分是按下还是抬起。3.在界面初始化函数OnInitDialog()中绑定句柄。仅为示例,具体细节继续学习相关知识,研究原理。4.2重写OnWndMsg()函数实现功能。1.捕捉鼠标左键按下抬起信号的实现方法。2.获取鼠标点击位置的实现方法。2.在界面类中创建按钮句柄。4.重写OnWndMsg。

weixin_53513779的博客 1244

Visual C++编程之MFC概述

学习Visual C++,自然就离不开MFC这个东西。MFC全称Microsoft Foundation Classes,也就是微软基础类库。它是VC++的核心,是C++与Windows API的结合,很彻底的用C++封装了Windows SDK(Software Development Kit,软件开发工具包)中的结构功能,还提供了一个应用程序框架,此应用程序框架为软件开发者完成了一些例行化的

LL-Studio的专栏 1463

MFC 捕获按钮 按下抬起 (转)

BOOL Cxx::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码/或调用基类 CString strShow = _T(""); if(pMsg->message == WM_LBUTTONDOWN)//按钮按下 { //按钮按下 if(pMsg-...

weixin_30955617的博客 693
上一篇: [MFC]知识集萃
下一篇: [个人收藏]常用网址&论坛
hicoder
博客等级 码龄16年 0粉丝 7原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值