问题描述
我想检测何时在FL_INPUT中按下Enter键,并使用C ++将其文本添加到FL_Text_display中。
请帮助我,我不知道该怎么办
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Text_Buffer.H>
#include <FL/Fl_Text_display.H>
#include <FL/Fl_Input.H>
using namespace std;
int main(int argc,char **argv) {
Fl_Window win(320,240,"BIC");
Fl_Text_Buffer txtbuf;
win.begin();
Fl_Text_display ted(2,2,320-2,240-2-32-2);
Fl_Input inp(2,240-2-32,32);
win.end();
ted.buffer(txtbuf);
win.resizable(ted);
win.show();
return Fl::run();
}
解决方法
您将必须继承Fl_Input并重写虚拟int handle(int)方法。
class MyInput : public Fl_Input {
public:
MyInput(int x,int y,int w,int h,const char* title=0) : Fl_Input(x,y,w,h,title) {}
virtual int handle(int e) override {
switch(e) {
case FL_ENTER: foo(); return 1;
default: return 0;
}
}
};