Quelle est la meilleure façon de dessiner des choses dans la fenêtre de la console sur la plate-forme Win 32 à l'aide de C ++? strong> p>
Je sais que vous pouvez dessiner un art simple à l'aide de symboles, mais y a-t-il une façon de faire quelque chose de plus complexe comme des cercles ou même des bitmaps? EM> P>
6 Réponses :
pas sans l'art de l'USGII ASCII. De retour dans les jours de Dos, il était "assez" facile à faire en redéfinissant les morceaux de caractères. Il ne peut être possible que dans Windows en créant votre propre police, mais je ne suis vraiment pas sûr que possible p>
Ensuite, comment ont-ils fait ces vieux jeux DOS dans la console?
La console de retour n'était alors pas la même console que celle-ci.
DOS Games n'a pas utilisé la console Win32, ils ont écrit des graphiques directement à la mémoire vidéo.
PS: Lisez sur le mode 13h ... vous trouverez probablement la plupart des informations à ce sujet :)
Tu es coincé avec GDI Buddy :)
En fait, maintenant je suis curieux s'il est possible de générer des cadres de la taille du client, Jigsaw chaque bloc dans sa propre police et remplir les écrans de ces blocs de jigsaw. Je ne sais pas si c'est possible d'enregistrer / désinserveiller les polices avec cmd à la volée. Serait assez amusant si c'est possible (bien qu'il soit probablement plus efficace et facile à créer une nouvelle fenêtre et à accrocher la fenêtre de la console pour redimensionner / déplacer pour imiter l'it et simplement dessiner avec GDI / Direct3D / OpenGL)
C'est un excellent exemple de dessiner un bitmap sur une console en créant une fenêtre enfant dessus:
http://www.daniweb.com/code/snippet216431.html P>
Et cela vous dit comment dessiner des lignes et des cercles:
http://www.daniweb.com/code/snippet216430.html p>
Peut-être que vous parlez de programmes DOS, en utilisant mode VGA . Une recherche Google rapide affiche un C Tutoriel . P>
Est-ce que cela est possible avec VC ++? Je ne veux pas m'habituer à une nouvelle IDE.
Comme Nick Brooks a souligné, vous pouvez utiliser des appels GDI dans les applications de console, mais les graphiques ne peuvent pas apparaître dans la même fenêtre que la console de texte I / O. Cela peut ne pas compter car vous pouvez dessiner des éléments de texte dans GDI. P>
Une interface simplifiée sur les appels GDI dans les apps de console est fournie par winbgim . Il s'agit d'un clone de l'API DOS BGI de Borland, mais avec des extensions pour gérer des fenêtres résiduelles, une entrée de la souris et des modèles de couleurs de 24 bits. Comme il est disponible en tant que code source, il sert également une bonne démonstration d'utiliser GDI de cette manière. P>
Il est possible d'avoir à la fois une console et la fenêtre GDI, ou vous pouvez supprimer la fenêtre de la console en précisant que l'application est une application GUI (l'option -MWindows Linker dans GNU Toolchain) - Notez que la spécification d'une application GII Vraiment supprimer uniquement la console, ce n'est que vraiment une application d'interface graphique s'il a une boucle de message. Avoir la console est bon pour le débogage, car il s'agit là où STDOUT et STDERR sont émis par défaut. P>
Il est possible, bien que totalement non documenté, de créer un tampon d'écran de console qui utilise un le voir. P> HBITMAP code> partagé entre le processus de la fenêtre de la console et le processus d'appelage. C'est l'approche que NTVDM prend pour afficher des graphiques une fois qu'une application DOS passe au mode graphique. P>
Oui, c'est possible.
Obtenez le Remarque: hwnd code> de la fenêtre de la console en utilisant getconsolewindow strong> puis tirez dessus. p>
getconsolewindow Code> a été introduit dans Windows 2000. Il est disponible lorsque
_win32_winnt code> est réglé sur 0x500 ou plus. p> p>