0% ont trouvé ce document utile (0 vote)
39 vues4 pages

API

Ce document explique comment créer un programme C++ pour afficher 'Hello World' au centre d'une fenêtre de console Windows avec un fond blanc et un rectangle. Il utilise des API Windows pour manipuler les couleurs et la taille de la fenêtre, ainsi que pour positionner le texte. Les fonctions clés incluent SetConsoleTextAttribute pour changer les couleurs, SetConsoleCursorPosition pour déplacer le curseur, et MoveWindow pour redimensionner la fenêtre.

Transféré par

bouziani.hwau
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
39 vues4 pages

API

Ce document explique comment créer un programme C++ pour afficher 'Hello World' au centre d'une fenêtre de console Windows avec un fond blanc et un rectangle. Il utilise des API Windows pour manipuler les couleurs et la taille de la fenêtre, ainsi que pour positionner le texte. Les fonctions clés incluent SetConsoleTextAttribute pour changer les couleurs, SetConsoleCursorPosition pour déplacer le curseur, et MoveWindow pour redimensionner la fenêtre.

Transféré par

bouziani.hwau
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

Pour créer un programme C++ qui affiche "Hello World" au centre de la fenêtre de la

console, avec un fond de couleur blanche et entouré par un rectangle, nous devons
utiliser des fonctions spécifiques pour la manipulation des couleurs et de la
taille de la fenêtre de la console. Cependant, il est important de noter que la
console standard de Windows (cmd) ne prend pas en charge directement l'utilisation
de couleurs de fond personnalisées et le dessin de rectangles comme dans des
interfaces graphiques.

Cependant, il est possible d'utiliser les API de Windows pour manipuler les
couleurs et dessiner un rectangle autour du texte.

Solution avec les API Windows (utilisant SetConsoleTextAttribute pour la couleur et


FillConsoleOutputCharacter pour dessiner le rectangle) :
Voici un exemple de code qui remplit les conditions que tu as demandées :

cpp
Copier le code
#include <iostream>
#include <windows.h> // Pour l'utilisation de l'API Windows

// Fonction pour modifier la couleur du texte et du fond dans la console


void SetColor(int textColor, int bgColor) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (bgColor << 4) |
textColor);
}

// Fonction pour dessiner un rectangle avec une couleur de fond


void DrawRectangle(int width, int height) {
// On utilise l'API Windows pour remplir la console
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
if (i == 0 || i == height - 1 || j == 0 || j == width - 1)
std::cout << "*"; // Dessine le rectangle
else
std::cout << " "; // Vide à l'intérieur du rectangle
}
std::cout << std::endl;
}
}

int main() {
// Taille de la console
const int width = 40;
const int height = 10;
const std::string message = "Hello World";

// Définir la taille de la fenêtre de la console


HWND console = GetConsoleWindow();
MoveWindow(console, 100, 100, 600, 400, TRUE);

// Définir la couleur du fond (blanc) et du texte (noir)


SetColor(0, 15); // 15 pour fond blanc, 0 pour texte noir

// Dessiner le rectangle
DrawRectangle(width, height);

// Définir les couleurs pour afficher le message


SetColor(15, 0); // Texte blanc, fond noir
// Positionner le texte "Hello World" au centre du rectangle
int xPos = (width - message.length()) / 2;
int yPos = height / 2;

// Déplacer le curseur à la position désirée


COORD coord;
coord.X = xPos;
coord.Y = yPos;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

// Afficher le message
std::cout << message;

return 0;
}
Explication du code :
Manipulation des couleurs : La fonction SetColor(int textColor, int bgColor) permet
de définir la couleur du texte et du fond en utilisant l'API
SetConsoleTextAttribute de Windows. Les codes de couleurs sont définis de manière à
ce que le texte et le fond soient configurés.

Le paramètre textColor est la couleur du texte (dans cet exemple, nous utilisons 0
pour noir).
Le paramètre bgColor est la couleur du fond (ici 15 pour le fond blanc).
Dessiner un rectangle : La fonction DrawRectangle(int width, int height) dessine un
rectangle vide (bordure avec des étoiles *) sur la console avec la largeur et la
hauteur spécifiées. Le texte sera affiché au centre de ce rectangle.

Positionner le texte : Le message "Hello World" est placé au centre du rectangle.


La fonction SetConsoleCursorPosition déplace le curseur à la position correcte pour
afficher le texte.

Mise à jour de la fenêtre de la console : La fenêtre de la console est


redimensionnée via MoveWindow pour avoir la taille de fenêtre appropriée pour
afficher le rectangle et le texte.

Résultats :
La console affichera un rectangle entourant le texte "Hello World", avec un fond
blanc et le texte centré.
Notes :
Ce code fonctionne sur un système Windows avec une console de commande (cmd). Les
API utilisées, comme SetConsoleTextAttribute et SetConsoleCursorPosition, sont
spécifiques à Windows.
La console de Windows n'est pas aussi flexible que des bibliothèques graphiques
comme SFML, SDL, ou OpenGL, mais elle peut tout de même gérer certaines tâches de
base comme la manipulation des couleurs et du texte.
Essaie ce code et fais-moi savoir si tu rencontres des problèmes ou si tu as besoin
d'aide supplémentaire !

Vous avez dit :


l'API
ChatGPT a dit :
ChatGPT
L'API que j'ai mentionnée dans le code précédent se réfère à l'API Windows, qui
permet d'interagir directement avec le système d'exploitation Windows pour
manipuler des éléments de la console, comme la couleur du texte, la position du
curseur, la taille de la fenêtre, etc.
Qu'est-ce que l'API Windows ?
L'API (Application Programming Interface) Windows est un ensemble de fonctions
fournies par le système d'exploitation Windows, permettant aux développeurs de
contrôler des aspects du système, de l'interface graphique et des applications.
Elle est utilisée dans des applications Windows, qu'elles soient en mode console ou
avec des interfaces graphiques plus complexes.

Dans le contexte de ton programme, nous avons utilisé une API Windows spécifique à
la console, qui permet de manipuler l'affichage des textes dans la fenêtre de la
console (cmd). Ces API sont disponibles dans la bibliothèque windows.h, que nous
incluons dans notre programme pour pouvoir les utiliser.

Fonctionnalités utilisées dans l'exemple :


SetConsoleTextAttribute :

Cette fonction est utilisée pour modifier l'apparence du texte et du fond dans la
fenêtre de la console.
Elle prend deux arguments :
Le premier (textColor) est la couleur du texte.
Le deuxième (bgColor) est la couleur de fond.
Par exemple :
cpp
Copier le code
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (bgColor << 4) |
textColor);
Cela modifie l'apparence de la console en fonction des valeurs passées en
paramètres.
SetConsoleCursorPosition :

Cette fonction permet de déplacer le curseur de la console à une position


spécifique dans la fenêtre.
Elle prend un objet COORD, qui contient les coordonnées X et Y du curseur à
l'écran.
Exemple :
cpp
Copier le code
COORD coord;
coord.X = xPos;
coord.Y = yPos;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
Cela positionne le curseur à la position souhaitée pour afficher le texte "Hello
World" au centre du rectangle.
GetStdHandle :

Cette fonction récupère un handle vers un flux de la console, comme la sortie


standard (STD_OUTPUT_HANDLE), ce qui est nécessaire pour manipuler la console
(changer les couleurs, positionner le curseur, etc.).
MoveWindow :

Cette fonction est utilisée pour redimensionner et déplacer la fenêtre de la


console.
Elle prend plusieurs paramètres pour définir la position (coordonnée X et Y) et les
dimensions (largeur et hauteur) de la fenêtre de la console.
Exemple :
cpp
Copier le code
HWND console = GetConsoleWindow();
MoveWindow(console, 100, 100, 600, 400, TRUE);
Cela déplace la fenêtre de la console à une position spécifique à l'écran et
définit sa taille.
Explication des couleurs dans la console :
Les couleurs sont gérées par un code de couleur qui représente une combinaison de
couleurs pour le texte et le fond. Voici les codes utilisés par
SetConsoleTextAttribute :

0 : Noir
1 : Bleu
2 : Vert
3 : Aqua (cyan)
4 : Rouge
5 : Violet
6 : Jaune
7 : Blanc
8 : Gris foncé
9 : Bleu clair
10 : Vert clair
11 : Aqua clair
12 : Rouge clair
13 : Violet clair
14 : Jaune clair
15 : Blanc brillant
Exemple d'utilisation des couleurs dans SetConsoleTextAttribute :
Pour avoir un texte noir avec un fond blanc :
cpp
Copier le code
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (15 << 4) | 0);
Cela signifie que le fond est blanc (15), et le texte est noir (0).
Prérequis pour utiliser l'API Windows :
L'API Windows est spécifique aux systèmes Windows. Si tu utilises un système
différent, comme Linux ou macOS, tu devras utiliser des bibliothèques ou des API
différentes pour manipuler la console (comme ncurses sous Linux).
Résumé :
L'API Windows permet de contrôler de nombreux aspects du système d'exploitation
Windows. Dans le cadre de ton projet C++, nous avons utilisé cette API pour
manipuler la couleur du texte et du fond dans la console et positionner le texte à
l'endroit voulu. Les fonctions comme SetConsoleTextAttribute,
SetConsoleCursorPosition, et MoveWindow sont essentielles pour personnaliser
l'apparence et le comportement de la console sous Windows.

Si tu veux en savoir plus sur ces fonctions ou comment les utiliser dans d'autres
projets, n'hésite pas à poser des questions !

Vous aimerez peut-être aussi