Créer de la fenêtre de la console, à l'intérieur de fenêtre win32
J'ai une application win32 qui ont besoin d'ouvrir une console comme les jeux en tilde est pressé. J'ai enseigné que la meilleure solution est d'utiliser la fonction CreateWindow. Est-ce exact? Comment pourrais-je faire ce qui se chevauchent dans la fenêtre principale et de la cacher quand tilde est pressé de nouveau? Merci à vous tous
OriginalL'auteur Stefano | 2011-02-21
Vous devez vous connecter pour publier un commentaire.
Il est souvent tentant d'utiliser une fenêtre de console dans votre application (à l'aide de
AllocConsole
), mais il n'est certainement PAS un standard réutilisable de contrôle de Windows. Il dispose d'un grand nombre de comportements et de caractéristiques qui le rendent unique à partir d'une fenêtre classique.Pour cette raison, je suis d'accord avec votre instinct, contre l'utilisation d'un vrai "Console" de la fenêtre. Faire votre propre fenêtre avec un éditeur de texte, comme vous le feriez pour développer tout autre composant de l'INTERFACE utilisateur comme une PALETTE.
Si vous devez utiliser
CreateWindow
est difficile à dire: comment faites-vous le reste de votre INTERFACE? DirectX? GDI? Certains toolkit? Utilisez-vous d'autres des contrôles windows standard?Je pense que l'absolu de la solution la plus simple pour vous - même si vous êtes en utilisant DirectX serait d'utiliser
CreateWindow
ouCreateDialog
, pour afficher une fenêtre avec un accès en lecture seule de contrôle d'édition, et une seule ligne de contrôle d'édition pour la saisie de commandes. De cette façon, vous pouvez utiliser toutes les commandes intégrées. Si vous le faites dans DirectX, vous aurez besoin de l'appui d'une bibliothèque (faire un contrôle d'édition de texte en DirectX à partir de zéro n'est pas assez).OriginalL'auteur tenfour
C'est un assez vieux code, n'est pas encore vraiment penché sur elle. J'espère que c'est ce dont vous avez besoin. Si vous avez juste besoin d'un très simple, vous pouvez aussi simplement faire un appel à AllocConsole();
L'appel de
AllocConsole
montrera automatiquement la console sur l'écran. Il y a beaucoup de choses à savoir sur les consoles: msdn.microsoft.com/en-us/library/ms682010(v=VS.85).aspxOriginalL'auteur
Les solutions ici ne fonctionnera pas parce que des versions plus récentes de Windows SDK définir la structure du FICHIER par:
Lors de la tentative de remplacer le stdin/hors des structures de FICHIERS avec l'opérateur=, seulement un pointeur qui sera copié. Pour copier l'ensemble du FICHIER struct, vous devez définir la structure du FICHIER avant de votre windows.h comprennent:
Si ce n'est de toute façon pas possible pour vous, vous pouvez définir votre propre FICHIER de structure de FILE_COMPLETE et utiliser ce codesnippet:
OriginalL'auteur 5andr0
J'ai trouvé ce petit tutoriel /exemples de code utile.
http://www.halcyon.com/~ast/dload/guicon.htm
Il crée une console et redirige STD_IN et STD_OUT à la console.
Donc, vous pouvez facilement utiliser std::cin et std::cout etc ruisseaux.
OriginalL'auteur Zv_oDD