2015-03-18 4 views
2

J'avais une ancienne application graphique écrite en MFC de VC6 que j'essaye de migrer vers un framework C++ plus conforme. Je regardais la documentation du projet here nana, en essayant de trouver un exemple de base pour griffonner sur un widget comme toile similaire à l'ancien scribble MDI drawing example qui est livré avec Visual C++.Existe-t-il un support graphique pour gribouiller sur un canevas dans le nana C++ comme dans MFC?

Je l'ai lu est une nouvelle nana plate-forme prometteuse GUI C++ et je me demande si elle est bonne pour la programmation de l'interface graphique générale. En regardant la documentation nana, cependant, il n'y a que des exemples pour les boutons, les listboxes et autres. Je ne trouve aucune mention de capacités graphiques telles que le dessin sur un canevas (ou un bitmap en mémoire), qui se trouvent généralement dans d'autres bibliothèques GUI telles que MFC ou wxWidgets.

Est-ce que quelqu'un sait si le projet peut prendre en charge les opérations nana graphiques telles que celles sous-jacentes scribble exemple du VC? Plus précisément, l'exemple scribble dans les échantillons de l'atelier visuel MS dossier a démontré dessiner des courbes à main levée en réponse aux événements de souris, mémoriser les courbes et l'actualisation d'un espace client lorsque la fenêtre est soumis à un zoom et panoramique (à savoir la manipulation image/pixel V.S. logique des systèmes de coordonnées). Ce sont les API graphiques que je cherchais.

Merci.

+1

Ma question est de demander s'il existe une fonction spécifique (dessin sur toile) dans une bibliothèque c + + spécifique, ce qui est assez mmon et important. J'ai montré ce que j'ai cherché jusqu'ici. Je ne crois pas que cela demande seulement un tutoriel pour une fonctionnalité bien connue ou une demande pour une bibliothèque. – tinlyx

Répondre

2

Je ne pouvais pas trouver les exemples à MS, et je ne suis pas sûr de ce que vous avez besoin. Vous pouvez essayer avec ces liens:

Aux documents: drawing wrapper ou hier, pour définir une fonction de dessin.

A DOXY-docs: drawing

Les fonctions de dessin peuvent être construits en utilisant: graphics

De cette façon:

#include <nana/gui/wvl.hpp> 

int main() 
{ 
    using namespace nana; 

    form fm; 
    drawing dw(fm); 
    dw.draw([](paint::graphics& graph) 
    { 
     graph.rectangle(rectangle{5, 5, 50, 50}, true, colors::red); 
     graph.line(point(5, 5), point(55, 55), colors::white); 
    }); 

    dw.update(); 
    fm.show(); 
    ::nana::exec(); 
} 

enter image description here Hope it helps

+0

+1. Merci. C'est dans la direction que je cherchais. MS Visual Studio avait un exemple de gribouillage dans son dossier d'échantillons. Il montre comment dessiner des courbes à main levée en réponse à des événements de souris, stocker les courbes et actualiser la zone client lorsque le viewport subit un zoom et un panoramique (c'est-à-dire manipuler des systèmes de coordonnées logiques). Ce sont les API que je cherchais. – tinlyx

+1

peinture :: graphiques fournit à seulement fonctions de dessin limitées, mais en utilisant GDI +, vous obtiendrez des fonctions riches de dessin, voir [FAQ] (http://nanapro.org/en-us/help/faq.htm) – Jinhao