如何解决C++ 创建菜单并传递参数
所以我想基本上调用一个 void 并存储我的菜单、菜单编号、文本和函数(void)我显然做错了但我无法弄清楚。
void AddMenu(char* text,int Menu,void* func)
{
nMenu[Menu] = Menu;
sMenu[Menu] = text;
fMenu[Menu]* func;
}
所以想法是
void AddMenu("Main Menu",NULL);
void AddMenu("Option 1",1,SomeVoid());
void AddMenu("Option 2",2,NULL);
void AddMenu("Option 3",3,NULL);
void AddMenu("Option 4",4,NULL);
有没有更好的方法来做到这一点?
int nMenu[32];
char* sMenu[32];
DWORD* fMenu[32];
int curMenu;
bool InMenu;
void AddMenu(char* text,void* func)
{
nMenu[Menu] = Menu;
sMenu[Menu] = text;
fMenu[Menu]* func;
}
解决方法
尝试更像这样的事情:
final appDir = await syspaths.getApplicationDocumentsDirectory();
final fileName = path.basename(pickedFile.path);
final savedImage = await _storedImage.copy('${appDir.path}/$fileName');
widget.onSelectImage(savedImage);
typedef void (*menuFunc)();
int nMenu[32];
const char* sMenu[32];
menuFunc fMenu[32];
void AddMenu(const char* text,int Menu,menuFunc func)
{
nMenu[Menu] = Menu;
sMenu[Menu] = text;
fMenu[Menu] = func;
}
话虽如此,请考虑更像这样的事情:
void SomeVoid()
{
...
}
void AddMenu("Main Menu",NULL);
void AddMenu("Option 1",1,SomeVoid);
void AddMenu("Option 2",2,NULL);
void AddMenu("Option 3",3,NULL);
void AddMenu("Option 4",4,NULL);
using menuFunc = std::function<void()>;
struct menuInfo
{
int id;
std::string text;
menuFunc func;
};
std::vector<menuInfo> fMenu;
void AddMenu(std:string text,int id,menuFunc func)
{
menuInfo mi;
mi.id = id;
mi.text = text;
mi.func = func;
fMenu.push_back(mi);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。