Voilà, j'ai découvert ce matin la Xlib sous Unix, et j'aimerais juste savoir pourquoi j'ai pas d'affichage qui est pas mis à jour :
#include <X11/Xlib.h> #include <X11/Xutil.h> ...
// INITIALISATIONS XLIB int taille_h,taille_v ; GC gc; Display* ConnexionServeurX = XOpenDisplay(NULL); // Connection au serveur X int screen; Window Fenetre, root; unsigned long Blanc, Noir; screen = DefaultScreen (ConnexionServeurX); gc = DefaultGC (ConnexionServeurX, screen); root = RootWindow (ConnexionServeurX, screen); Blanc = WhitePixel (ConnexionServeurX, screen); Noir = BlackPixel (ConnexionServeurX, screen);
...
Fenetre = XCreateSimpleWindow(ConnexionServeurX,root,0,0,800,600,0,Blanc,Blanc) ; // Creation d'une fenetre de coordonnees 0,0 et de 800 sur 600, de couleur de fond blanche et bordure blanche // XMapWindow(ConnexionServeurX, Fenetre) ; // Mapping de la fenêtre XSelectInput(ConnexionServeurX, Fenetre,KeyPressMask) ; // On selectionne les evennements utiles , KeyPressMask pour capturer un evenement clavier XSetBackground(ConnexionServeurX,gc,Blanc) ; XSetForeground(ConnexionServeurX,gc,Blanc) ; XFillRectangle (ConnexionServeurX, Fenetre, gc, 60, 60, 20, 10) ; XFlush(ConnexionServeurX);
XEvent Evenement; // declaration d'un evenement do { XNextEvent(ConnexionServeurX, &Evenement) ; XFlush(ConnexionServeurX) ; } while(Evenement.type != KeyPress) ; // afficher la fenetre tant qu'aucune touche n'est pressee
Pourriez vous me dire pk ça ne marche pas ??? (J'ai que le fond noir, et qd j'appuie sur une touche la fenêtre s'en va, mais pas de figure blanche dedans)
Marsh Posté le 02-02-2004 à 16:13:59
Bonjour tout le monde
Voilà, j'ai découvert ce matin la Xlib sous Unix, et j'aimerais juste savoir pourquoi j'ai pas d'affichage qui est pas mis à jour :
#include <X11/Xlib.h>
#include <X11/Xutil.h>
...
// INITIALISATIONS XLIB
int taille_h,taille_v ;
GC gc;
Display* ConnexionServeurX = XOpenDisplay(NULL); // Connection au serveur X
int screen;
Window Fenetre, root;
unsigned long Blanc, Noir;
screen = DefaultScreen (ConnexionServeurX);
gc = DefaultGC (ConnexionServeurX, screen);
root = RootWindow (ConnexionServeurX, screen);
Blanc = WhitePixel (ConnexionServeurX, screen);
Noir = BlackPixel (ConnexionServeurX, screen);
...
Fenetre = XCreateSimpleWindow(ConnexionServeurX,root,0,0,800,600,0,Blanc,Blanc) ; // Creation d'une fenetre de coordonnees 0,0 et de 800 sur 600, de couleur de fond blanche et bordure blanche //
XMapWindow(ConnexionServeurX, Fenetre) ; // Mapping de la fenêtre
XSelectInput(ConnexionServeurX, Fenetre,KeyPressMask) ; // On selectionne les evennements utiles , KeyPressMask pour capturer un evenement clavier
XSetBackground(ConnexionServeurX,gc,Blanc) ;
XSetForeground(ConnexionServeurX,gc,Blanc) ;
XFillRectangle (ConnexionServeurX, Fenetre, gc, 60, 60, 20, 10) ;
XFlush(ConnexionServeurX);
XEvent Evenement; // declaration d'un evenement
do {
XNextEvent(ConnexionServeurX, &Evenement) ;
XFlush(ConnexionServeurX) ;
} while(Evenement.type != KeyPress) ; // afficher la fenetre tant qu'aucune touche n'est pressee
Pourriez vous me dire pk ça ne marche pas ??? (J'ai que le fond noir, et qd j'appuie sur une touche la fenêtre s'en va, mais pas de figure blanche dedans)