私は解放したいと思っている素敵なオープンソースプロジェクトに取り組んでいますが、破損した後に再描画しない子ウィンドウに問題があります。詳細については、この画像を参照してください。FLTKの子ウィンドウがLinux上で再描画されない
void showMessageWindow (std::string strMessage, std::string strTitle)
{
Fl_Window* msgWin = new Fl_Window(400, 255, NULL);
if (strTitle == "")
msgWin->label("Window Title");
msgWin->box(FL_BORDER_FRAME);
msgWin->set_non_modal();
Fl_PNG_Image* img = new Fl_PNG_Image("/home/obaker/Pictures/info-icon.png");
Fl_Box* ibox = new Fl_Box(20, 20, 48, 48);
ibox->image(img);
Fl_Multiline_Output* mOut = new Fl_Multiline_Output(90, 20, 275, 175, NULL);
mOut->box(FL_NO_BOX);
mOut->wrap(true);
mOut->readonly(true);
mOut->cursor_color(FL_BACKGROUND_COLOR);
mOut->value(strdup(strMessage.c_str()));
Fl_Button* btn = new Fl_Button(150, 210, 100, 35, "OK");
btn->box(FL_GTK_UP_BOX);
btn->shortcut(FL_Enter);
btn->callback(msgBoxClose, msgWin);
msgWin->add(ibox);
msgWin->add(mOut);
msgWin->add(btn);
msgWin->show();
}
私はFl_Double_Window代わりのFl_Windowを使用してみましたが、それはさらに悪いことになります:
ここは、私がこれを表示するために使用しているコードです。 「エッジの効いた」と「クール」のよう
それはそれは私のプロジェクトのために適切ではないですが、見えるかもしれませんよう。 :-)
私は、Debian Linux 8,64ビット、AMD Radeon HD 6670ビデオカード、8GB RAMを開発し、テストしています。 Debianが提供するFLTKのバージョンは1.3(1.3.2-6)です。
親ウィンドウはFl_Double_Windowであり、それ自体はうまく再描画されます。
この子ウィンドウが破損したときに、この子ウィンドウを強制的に再描画するように推奨できるものはありますか?
ありがとうございます! :-)