我可以使用 VS2022 对话框的资源编辑器向工具栏添加按钮吗?
工具栏在 .rc 文件中定义为:
CONTROL "Custom1",IDC_CUSTOM1,"ToolbarWindow32",WS_TABSTOP,7,7,315,21
我只找到了如何在运行时添加按钮的示例,而不是设计时。
我可以使用 VS2022 对话框的资源编辑器向工具栏添加按钮吗?
有点像,但不是真的。
系统不提供在资源脚本中声明 toolbar 按钮的方法,这些按钮会作为对话框创建的一部分自动添加到工具栏。按钮始终必须在运行时手动添加。
如果您正在编写标准 Win32 桌面应用程序,那么故事到此结束。
接下来是“有点”部分。鉴于上述情况属实,Visual Studio 确实提供了工具栏编辑器,这可能会让人感到惊讶。在所有标准资源编辑器中,这是一个奇怪的编辑器。提示很微妙,在文档的最底部写着:
要求
MFC 或 ATL
编辑器运行于由 Microsoft 基础类 (MFC)
引入和使用的自定义私有资源类型 (
RT_TOOLBAR
)。基本思想是让图形资源编辑器转储框架在运行时拾取的RT_TOOLBAR
(二进制)资源,解析回结构化数据,并用于构造按钮。
按钮 still 必须在运行时手动添加。唯一的区别是其他人(MFC)已经编写了执行此操作的代码,因此我们不必这样做。
理论上,一个人“可以”在不使用 MFC 的标准 Win32 桌面应用程序中重用该机制的一部分。 RT_TOOLBAR
资源背后的二进制数据并不是很复杂,MFC源代码(例如
bartool.cpp)足以推断其含义。 仍然存在一些影响和限制,并且没有官方(合同)文档可供依赖,所以最好不要这样做。