Visual c++ FLTK Fl_选择获取所选项目
我想获取所选的用户项,但在以下代码中出现错误:Visual c++ FLTK Fl_选择获取所选项目,visual-c++,fltk,Visual C++,Fltk,我想获取所选的用户项,但在以下代码中出现错误: choice->value(); 希望你们能帮助我 Fl_Choice* choice; int i = 0; void but_cb(Fl_Button* obj, void*) { i = choice->value(); cout<<i; } int main (int argc, char* argv[]) {
choice->value();
希望你们能帮助我
Fl_Choice* choice;
int i = 0;
void but_cb(Fl_Button* obj, void*)
{
i = choice->value();
cout<<i;
}
int main (int argc, char* argv[]) {
Fl_Double_Window* win = new Fl_Double_Window(400,400,"Sample");
win->begin();
Fl_Choice* choice = new Fl_Choice(100,100,100,100,"Name");
choice->add("Peter");
choice->add("Tom");
choice->add("Mary");
Fl_Button* but = new Fl_Button(300,300,50,50,"Selected");
but->callback((Fl_Callback*)but_cb);
win->show();
return (Fl::run());
}
Fl_选择*Choice;
int i=0;
无效但无效cb(Fl按钮*obj,无效*)
{
i=选择->值();
库塔德(“彼得”);
选择->添加(“Tom”);
选择->添加(“玛丽”);
Fl_按钮*但=新Fl_按钮(300300,50,50,“选定”);
但是->回调((Fl\u callback*)但是\u cb);
赢->秀();
返回(Fl::run());
}
我没有花太多时间阅读代码,因此下面经过修改和注释的代码可能无法解决您的问题。我相信choice
在中为空,但是当您在main()函数中重新定义choice时,会隐藏全局“choice”指针
Fl_Choice* choice;
int i = 0;
void but_cb(Fl_Button* obj, void*) {
i = choice->value(); // uses global `choice` pointer to Fl_Choice.
cout << i;
}
int main (int argc, char* argv[]) {
Fl_Double_Window* win = new Fl_Double_Window(400,400,"Sample");
win->begin();
/* You are redefining choice here! BAD, because but_cb uses the global one.
Fl_Choice* choice = new Fl_Choice(100,100,100,100,"Name");
*/
// Good, assigns to the global `choice`, so it won't be NULL when but_cb is called
choice = new Fl_Choice(100,100,100,100,"Name");
choice->add("Peter");
choice->add("Tom");
choice->add("Mary");
Fl_Button* but = new Fl_Button(300,300,50,50,"Selected");
but->callback((Fl_Callback*)but_cb);
win->show();
return (Fl::run());
}
Fl_选择*Choice;
int i=0;
无效但无效cb(Fl按钮*obj,无效*){
i=choice->value();//使用全局'choice'指针指向Fl_选项。
无法开始();
/*你在这里重新定义选择!糟糕,因为CBU使用全局选择。
Fl_选项*选项=新Fl_选项(100100,“名称”);
*/
//很好,分配给全局'choice',因此调用but_cb时它不会为NULL
选择=新的Fl_选择(100100,“名称”);
选择->添加(“彼得”);
选择->添加(“Tom”);
选择->添加(“玛丽”);
Fl_按钮*但=新Fl_按钮(300300,50,50,“选定”);
但是->回调((Fl\u callback*)但是\u cb);
赢->秀();
返回(Fl::run());
}