尝试采用 C++ 模板和代码重用的最佳实践

问题描述 投票:0回答:1

我正在开发一个 wxWidgets 项目,其中新菜单项填充了一系列具有预定义值的输入框。此特定功能有 40 多种不同的入门模板。

有没有一种方法可以添加此功能而无需编写 40 多个不同的 menu_clicked 事件函数?其中唯一的区别是要填充到 UI 中的文本。

例子:

File -> New -> Option 1 //On_Click() {update textboxes with option 1 values}
               Option 2 //On_Click() {update textboxes with option 2 values}
               Option 3 //On_Click() {update textboxes with option 3 values}
               ...
               Option 40 //On_Click() {update textboxes with option 40 values}

通过 C++ 模板执行此操作的最有效方法是什么?这种功能是否可能/比手动编写每个功能更容易?

c++ wxwidgets
1个回答
0
投票

你不需要模板。只需创建一个处理程序函数,将其连接到整个 ID 范围(

Bind()
允许指定第一个和最后一个 ID,而不仅仅是一个 ID),然后使用
event.GetId() - ID_FIRST
获取您要选择的选项的索引处理(修复差一错误留给读者作为练习)。

© www.soinside.com 2019 - 2024. All rights reserved.