如何解决MFC:默认情况下,使用哪种方法将工具栏按钮设置为全部工具栏按钮的子集?
我想将所有menu items
添加到toolbar
,但默认情况下仅显示其中一部分(无需用户自定义)。这样,所有菜单项旁边都会有图标,但是除非用户添加它们,否则工具栏将不会包含很少使用的项。
如果可能的话,如何使用CMFCToolBar
完成操作?
解决方法
如果可能的话,如何使用CMFCToolBar完成该操作?
您可以在程序的资源脚本中定义任意数量的“虚拟”工具栏资源,如以下示例所示,其中ID_DUMMY1
是工具栏/位图资源ID(必须资源编译器和 C ++编译器)和三个ID_COMMAND_x
ID定义了图像所对应的菜单命令:
ID_DUMMY1 BITMAP L"DummyToolbar.bmp" // 16 x 48 bitmap for three 'buttons
ID_DUMMY1 TOOLBAR 16,16
{
BUTTON ID_COMMAND_A // Three commands corresponding to the three button
BUTTON ID_COMMAND_B // images in the above bitmap
BUTTON ID_COMMAND_C
}
然后,在您的程序中(通常是在初始化主框架窗口之后),可以调用CMFCToolBar
类的{em> static 成员AddToolBarForImageCollection
从这些虚拟工具栏加载图像。以下将这些图像加载到上面定义的资源中:
CMFCToolBar::AddToolBarForImageCollection(ID_DUMMY1,ID_DUMMY1);
此后,具有给定命令的每个菜单项将显示在虚拟工具栏资源中定义的关联图像。您可以根据需要拥有任意数量的此类工具栏资源,只需为每个工具栏调用AddToolBarForImageCollection
。
注意:尽管我为工具栏和位图资源都使用了相同资源ID,但是您也可以使用不同 ID。只要对AddToolBarForImageCollection
的调用中给出的参数正确协调,该方法仍将起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。