工具栏,可拖动,并在被隐藏的地方显示的实现代码

工具栏,可拖动,并在被隐藏的地方显示的实现代码,第1张

工具栏,可拖动,并在被隐藏的地方显示的实现代码,第2张

1.在工具栏资源中创建新的工具栏IDR_TOOLBAR。添加按钮。然后在MainFrame中添加一个成员变量CToolBar m _ newToolBar在大型机的OnCreate函数中,添加:
/创建工具栏,加载工具栏资源
if(!m _新工具栏。CreateEx(this,TBSTYLE_FLAT,WS _ CHILD | WS _ VISIBLE | CBRS _ RIGHT | CBRS _ GRIPPER |
CBRS _ TOOLTIPS | CBRS _ fly by | CBRS _ SIZE _ DYNAMIC)| |!m _新工具栏。load TOOLBAR(IDR _ TOOLBAR))
{
trace 0(\ "未能创建工具栏\ \ n \ ");
return-1;//无法创建
}
m_newToolBar。enable docking(CBRS _ ALIGN _ ANY);//允许工具栏在工具栏区域移动
Enable Docking(CBRS _ align _ any);//这个框架可以拖到任何地方。如果已经为另一个工具栏编写过,就不需要编写
DockControlBar(& m _ new ToolBar);//允许此工具栏在整个窗口中拖动window
2。在菜单上新建一个菜单(ID_TOOLBAR,toolbar test),然后通过ClassWizard将命令响应函数添加到这个菜单中:
方法1
void cmainframe::on TOOLBAR()
{
If(m _ new TOOLBAR . iswindowvisible())//如果显示工具栏,则隐藏,否则显示。
{
m_newToolBar。ShowWindow(SW _ HIDE);
}
else
{
m _ new toolbar。SHOW window(SW _ SHOW);
}
RecalcLayout();//注意,如果不写这行,工具栏会被隐藏,但是工具栏还是会存在。您需要重新计算
DockControlBar(& m _ new toolbar);//这行是为了工具栏被拖出边框时,工具栏窗口不能隐藏。需要依靠。
}
方法二,将上述函数中的内容改为:
show control bar(& m _ new toolbar,!m _新工具栏。IsWindowVisible(),FALSE);//以上功能一句话就能实现,还能保存隐藏前的窗口位置
3。菜单项的复选标记可以与工具栏相关联。我们在菜单项上新建一个UPDATE_COMMAND_UI的消息对应函数:
void CMAINFRAME::ON UPDATE Toolbar(C CMDUI * PCM DUI)
{
PCM DUI-> SET CHECK(m _ new Toolbar . iswindowvisible());
}
4。编辑快捷键资源中的快捷键:选择响应快捷键的菜单ID,然后设置快捷键。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 工具栏,可拖动,并在被隐藏的地方显示的实现代码

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情