ON_COMMAND 消息映射宏的替代方法,用于调用带有参数的函数
Alternative for ON_COMMAND message map macro to call a function with a paramenter(s)
我的程序开头有一个消息映射,如下所示:
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
, but the only usage example I was able to find 似乎不是我要找的东西...有人有什么想法吗?
正如@Iinspectable 所说,你不能。
例如尝试添加一个成员变量并在调用函数之前设置它。
我的程序开头有一个消息映射,如下所示:
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
, but the only usage example I was able to find 似乎不是我要找的东西...有人有什么想法吗?
正如@Iinspectable 所说,你不能。
例如尝试添加一个成员变量并在调用函数之前设置它。