2010-03-15 3 views
4

J'essaie de comprendre comment rediriger istream vers wxwidgets.Comment puis-je rediriger stdin (istream) dans wxWidgets?

j'ai pu accomplir redirigeant ostream, voici comment (vous savez ce que je veux dire):

wxTextCtrl* stdoutctrl = new wxTextCtrl(...); 
    wxStreamToTextRedirector redirect(stdoutctrl); //Redirect ostream 
    std::cout<<"stdout -- does this work?"<<std::endl; //It worked. 

Je cherchais depuis un certain temps maintenant, et je suis incapable de savoir que je rediriger istream vers une sorte d'entrée wx (donc un "cin" inviterait l'utilisateur à entrer via wxWidgets).

Répondre

3

Non, il n'y a pas de manière intégrée de le faire car il est beaucoup moins courant de vouloir rediriger cin comme ceci par rapport à cout. Et ce n'est pas vraiment clair comment vous vous attendez à ce que cela fonctionne, c'est-à-dire que vous ne pouvez probablement pas le mapper à wxTextCtrl comme vous le faites avec cout. Et plus généralement, la lecture est une opération de blocage, contrairement à l'écriture, donc ce n'est pas clair du tout comment pouvez-vous structurer votre application graphique pour le faire. En bref, je ne pense pas que vous pouvez porter votre programme de console en utilisant cin pour wxWidgets comme ça du tout.