最近遇到了一个问题就是在VC中利用osg动态画图的时候,拖动工具栏时程序会卡主,一直在找如何锁定工具栏的问题,最近看到了一个帖子收到了一些启发, 最终实现了我想要的功能,现在来记录一下。
在VS2010下的单文档程序中,工具栏时通过CMFCToolBar来创建的,但你在拖动工具栏之前肯定是要单击工具栏边框,所以我们先来创建一个类,父类为CMFCToolBar,然后再程序中添加OnLButtonDown和OnLButtonDblClk两个函数,然后在这两个函数中判断是否单击了自定义工具栏的边框,这里就要用到一个关键的函数了:
if (OnToolHitTest(point, NULL) == -1)//此处是判断是否单击了工具栏的边框
{
return;
}
else
{
......
}
在OnLButtonDown和OnLButtonDblClk两个函数中添加上述代码,这样在单击边框准备拖动时就直接return了