作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个简单的 FLTK 应用程序(在 Linux 中),它需要在 FL_Window 中显示 PNG 图像。下一段代码:
Fl_PNG_Image* pngImg;
Fl_Box* boxImage;
boxImage = new Fl_Box(500, 470, 0, 0);
pngImg = new Fl_PNG_Image("main.png");
boxImage->image(pngImg);
boxImage->redraw();`
画好了。但是当我喜欢这样的时候:
我的形象毁了。我需要调用哪个回调以避免图像损坏?如何正确更新盒子?如何手动从磁盘重新加载图像?
最佳答案
试试这个:(来源:http://osdir.com/ml/lib.fltk.general/2004-07/msg00396.html)
注意:因为我无法重现您的错误,所以我不确定它是否会解决它,但无论出于何种原因,您的主窗口都没有在应该重绘的时候重绘,这似乎是合理的。
将父窗口子类化并让它手动重绘其内容并插入 FLTK 在它移动时尽快使用 Fl::check() 重绘它,这样你就有类似的东西了
class Mywin : public Fl_Window {
void resize(int X, int Y, int W, int H) {
Fl_Window::resize(X,Y,W,H);
redraw();
Fl::check();
}
public:
Mywin(int x,int y,int w, int h) : Fl_Window(x,y,w,h) {
}
};
int main() {
Mywin* win = new Mywin(20,20,800,800);
Fl_Box* box = new Fl_Box(100,100,300,200);//for example
Fl_PNG_Image* pngImg = new Fl_PNG_Image("main.png");
box->image(pngImg);
box->show();
win->end();
win->show();
return (Fl::run());
}
关于C++ FLTK 图像重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26522022/
我是一名优秀的程序员,十分优秀!