visual-c++ - ON_COMMAND 消息映射宏的替代方法来调用带有参数的函数
问题描述
我的程序开头有一个消息映射,如下所示:
BEGIN_MESSAGE_MAP(SoftwareDlg, CDialog)
//{{AFX_MSG_MAP(SoftwareDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_TIMER()
ON_WM_DESTROY()
...
ON_COMMAND(ID_TOOLS_UPLOADDATA, UploadData)
...
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
这里是ID_TOOLS_UPLOADDATA
菜单选项在单击时调用的函数:
void UploadData()
{
string apiEndpoint = "/api/stuff";
upload_data(apiEndpoint);
}
我的问题是我希望我的UploadData()
函数能够将其string apiEndpoint
作为参数,以便我可以从程序中的多个位置调用它以进行多项操作(不仅仅是当用户单击菜单按钮时)。像这样:
void UploadData(string apiEndpoint = "/api/stuff")
{
upload_data(apiEndpoint);
}
我看了看ON_COMMAND_EX
,但我能找到的唯一用法示例似乎不是我要找的……有人有什么想法吗?
解决方案
正如@Iinspectable 所说,你不能。
例如,尝试添加一个成员变量并在调用函数之前对其进行设置。
推荐阅读
- python - 如何减少我拥有的行数?
- java - 具有多个泛型的 Java 泛型工厂模式
- python - NXOpen.NXException:缺少节字符串
- javascript - 将一对数组转换为 2 个单独的数组而无需迭代
- react-native - java.io.IOException: Permission denied - 在运行 react-native run-android 之后
- javascript - 如何根据之前的值修改 JavaScript 中 hashmap 的值
- javascript - Plotly.js 条形图数据参数不可分配给“数据 []”类型的参数
- nuxt.js - 从 Mapbox 地图中添加/删除标记
- php - 我将如何在 php 中进行总计?
- xcode - 重新安装 Xcode 后在颤振模拟器中运行应用程序的问题