禁用CMFCRibbonApplicationButton的单击和双击事件

为了禁用CMFCRibbonApplicationButton的单击和双击事件,我重载了CMFCRibbonApplicationButton如下:

1. MyRibbonApplicationButton.h文件内容:

#pragma once

class CMyRibbonApplicationButton :
public CMFCRibbonApplicationButton
{
public:
CMyRibbonApplicationButton();
//~CMyRibbonApplicationButton();

protected:
virtual void OnLButtonDown(CPoint point);
virtual void OnLButtonDblClk(CPoint point);
};

2. MyRibbonApplicationButton.cpp文件内容:

#include "stdafx.h"
#include "MyRibbonApplicationButton.h"

CMyRibbonApplicationButton::CMyRibbonApplicationButton()
{
}

//CMyRibbonApplicationButton::~CMyRibbonApplicationButton()
//{
//}

// CMyRibbonApplicationButton 成员函数
void CMyRibbonApplicationButton::OnLButtonDblClk(CPoint point)
{
return;
}

void CMyRibbonApplicationButton::OnLButtonDown(CPoint point)
{
return;
}

3.

在CMainFrame的中的OnCreate函数中找到

m_wndRibbonBar.LoadFromResource(IDR_RIBBON);

在这一行的下面添加

CMFCRibbonApplicationButton* pMainButton = m_wndRibbonBar.GetApplicationButton();
delete pMainButton; //删除框架自动生成的RibbonApplicationButton

CMyRibbonApplicationButton* pMyMainButton = new CMyRibbonApplicationButton();
pMyMainButton->SetImage(IDB_MAIN);
m_wndRibbonBar.SetApplicationButton(pMyMainButton, CSize(45, 45));

就可以了。

时间: 2024-08-08 10:58:54

禁用CMFCRibbonApplicationButton的单击和双击事件的相关文章

Android 自定义View实现单击和双击事件

自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面的线程 3. 自定义一个Handler, 在TouchEventHandler 中 处理 统计到的点击事件, 单击, 双击, 三击, 都可以处理 核心代码如下: public class MyView extends View { ...... // 统计500ms内的点击次数 TouchEvent

jquery处理单击和双击事件

今天做div点击时,需要用到同一div的单击和双击事件,出现问题如下 例子: Html <body> <div id="div_1">单击双击我</div> 事件执行次数:<input id="input_1" type="text" value="0" /> </body> js $(document).ready(function(){ var i = 0; $(

GridView/DataGrid行单击和双击事件实现代码_.Net教程

功能: 单击选中行,双击打开详细页面 说明:单击事件(onclick)使用了 setTimeout 延迟,根据实际需要修改延迟时间 ;当双击时,通过全局变量 dbl_click 来取消单击事件的响应  常见处理行方式会选择在 RowDataBound/ItemDataBound 中处理,这里我选择 Page.Render 中处理,至少基于以下考虑  1.RowDataBound 仅仅在调用 DataBind 之后才会触发,回发通过 ViewState 创建空件不触发 假如需要更多的处理,你需要分

[转] Ext Grid (ExtJs)上的单击以及双击事件

例1: 1.双击 var cb = new Ext.grid.RowSelectionModel({ singleSelect:true //如果值是false,表明可以选择多行:否则只能选择一行 }); var alarmGrid = new Ext.grid.GridPanel({ } alarmGrid.addListener('rowdblclick', rowdblclickFn); function rowdblclickFn(grid, rowindex, e){ grid.get

unity3D 游戏物体同时绑定单击、双击事件

前言 在unity中我们常用的获取鼠标点击的方法有 在3D场景中,一般用在Update方法中,每一帧调用 void Update(){ if(Input.GetMouseButtonDown(0)){ Debug.log("鼠标左键点击"); } } 在画布场景中,一般用在OnGUI方法中,这个也是一个循环调用的方法 void OnGUI() { Event e = Event.current; if (e.isMouse && (e.clickCount == 2))

jquery 单击和双击事件冲突解决方案

本人需要给bootstrap-treeview的树节点添加双击事件.而该插件原生方法中不带双击事件功能.该插件的节点默认绑定的单击事件,由此引起了单击事件和双击事件的冲突. 编写测试代码 引起冲突的代码: 问题效果展示: 每一次触发双击事件都会引起两次单击事件 解决冲突的代码: 解决问题效果展示: 完美解决单击事件和双击事件冲突问题 这里主要用到两个HTML DOM Window对象中函数,settimeout(),clearTimeout() 我这里两个单击事件触发的时间间隔设置在等于300毫

GridView 行单击或双击事件绑定

protected void gvTeacherTaskList_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "ShowDetail") { } } protected void gvTeacherTaskList_DataBound(object sender, EventArgs e) { foreach (GridViewRow row in gvTeacherTaskL

javascript双击事件取消默认的两次单击事件

当一个元素同时具有单击和双击事件时,双击时会触发2次单击和1此双击事件. 双击会:先第1次单击 ,同时触发第2次和双击事件. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; ch

JQuery如何实现双击事件时不触发单击事件

单击和双击事件的执行顺序: 单击(click):mousedown,mouseout,click: 双击(dblclick):mousedown,mouseout,click , mousedown,mouseout,click,dblclick: 在双击事件(dblclick),触发的两次单击事件(click)中,第一次的单击事件(click)会被屏蔽掉,但第二次不会.也就是说双击事件(dblclick)会返回一次单击事件(click)结果和一次双击事件(dblclick) 结果.而不是一次双