mfc自定义工具栏如何锁定

本文介绍在VC++ MFC环境下,如何通过继承CMFCToolBar类并实现OnLButtonDown和OnLButtonDblClk函数来防止工具栏在拖动时导致程序卡顿。通过设置m_bLockOrNot变量,实现工具栏的锁定和解锁功能,用户可以在菜单中选择锁定或解锁工具栏。
摘要由CSDN通过智能技术生成

        最近遇到了一个问题就是在VC中利用osg动态画图的时候,拖动工具栏时程序会卡主,一直在找如何锁定工具栏的问题,最近看到了一个帖子收到了一些启发, 最终实现了我想要的功能,现在来记录一下。

        在VS2010下的单文档程序中,工具栏时通过CMFCToolBar来创建的,但你在拖动工具栏之前肯定是要单击工具栏边框,所以我们先来创建一个类,父类为CMFCToolBar,然后再程序中添加OnLButtonDown和OnLButtonDblClk两个函数,然后在这两个函数中判断是否单击了自定义工具栏的边框,这里就要用到一个关键的函数了:

if (OnToolHitTest(point, NULL) == -1)//此处是判断是否单击了工具栏的边框
{
return;
}
else
{

......

}

OnLButtonDown和OnLButtonDblClk两个函数中添加上述代码,这样在单击边框准备拖动时就直接return了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值