如何在基于单文档的MFC界面中在工具栏和视图之间添加自己的控件

时间:2022-08-18 08:59:28
现在要在基于单文档的MFC程序界面下的工具栏和视图之间插入一个我自己定义的控件,因该如何组织代码?非基于对话框的MFC应用程序如果要添加控件好像只能动态写代码添加控件吧。

8 个解决方案

#1


你的问题可以简化成在工具栏上添加控件

动态创建是一定的。

#2


最直接的就是添加dialogbar

也可以修改view使用form框,但是需要自己重绘(当调整大小的时候)。

#3


用各种ControlBar都可以,例如CDialogBar。

#4


在Frame的 OnCreate里面创建控件

#5


CDockControlBar

#6


CDialogBar/CDockControlBar/CReBar/CCoolBar......
停靠时选TOP就可以。
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar, AFX_IDW_DOCKBAR_TOP);

#7


那怎么在view的右边或者左边或者下面添加这样的控件呢,就说让自己创建的控件不会和view重合,如果是动态创建的控件然后把它放在view的左边,这时这个控件会覆盖掉view的左边区域。比如我现在选择打开一个文件的操作,然后在view里面显示这个文件的内容,在view左边的控件里面显示这个文件创建者,创建时间,最后修改时间之类的信息因该怎么处理?

#8


一样是用ControlBar,通过EnableDocking和DockControlBar来设置位置。

#1


你的问题可以简化成在工具栏上添加控件

动态创建是一定的。

#2


最直接的就是添加dialogbar

也可以修改view使用form框,但是需要自己重绘(当调整大小的时候)。

#3


用各种ControlBar都可以,例如CDialogBar。

#4


在Frame的 OnCreate里面创建控件

#5


CDockControlBar

#6


CDialogBar/CDockControlBar/CReBar/CCoolBar......
停靠时选TOP就可以。
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar, AFX_IDW_DOCKBAR_TOP);

#7


那怎么在view的右边或者左边或者下面添加这样的控件呢,就说让自己创建的控件不会和view重合,如果是动态创建的控件然后把它放在view的左边,这时这个控件会覆盖掉view的左边区域。比如我现在选择打开一个文件的操作,然后在view里面显示这个文件的内容,在view左边的控件里面显示这个文件创建者,创建时间,最后修改时间之类的信息因该怎么处理?

#8


一样是用ControlBar,通过EnableDocking和DockControlBar来设置位置。