begin process at 2012 02 10 20:07:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

Effacer les graphiques avec InvalidateRect !?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Effacer les graphiques avec InvalidateRect !?

lundi 4 juillet 2005 à 01:16:41 | Effacer les graphiques avec InvalidateRect !?

Suisse00

Dans plusieurs source je voie qu'il utilise InvalidateRect  pour "effacer". Mais dans mon cas sa fait en sorte que je recois toujours WM_PAINT (et donc sa clignote).

[...] WM_PAINT: OnPaint(); [...]

void OnPaint(){
    //InvalidateRect(hWnd, &coordonner, TRUE);
    // Sinon on recoi toujours WM_PAINT
    ValidateRect(hWnd,NULL);
    UpdateWindow(hWnd);
    HDC hdc = GetDC(hWnd);
    DrawIcon(hdc, coordonner.left, coordonner.top, hicon);
    ReleaseDC(hWnd, hdc);
}

et quand on clic :
RECT coordonner;
(coordonner remplir grasse a setcoordonner(int x,int y);)

        case WM_LBUTTONDOWN:
            if(wParam==MK_LBUTTON){
            POINTS point;
            point = MAKEPOINTS(lParam);
            setcoordonner(point.x,point.y);
            InvalidateRect(hWnd,&coordonner, TRUE);
            UpdateWindow(hWnd);
            }

Merci de pouvoir m'aide :)
------------------------------------------
Votre dévoué posseur de question :D
lundi 4 juillet 2005 à 08:06:56 | Re : Effacer les graphiques avec InvalidateRect !?

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
On n'appelle pas UpdateWindow dans WM_PAINT pour commencer, aucun intérêt

void OnPaint(){
    PAINTSTRUCT ps;
    HDC hdc = BeginPaint(hWnd, &ps);
    DrawIcon(hdc, coordonner.left, coordonner.top, hicon);
    EndPaint(hWnd, &ps);
}
lundi 4 juillet 2005 à 21:01:04 | Exemple déplacement d'un icone GDI DC sans clignotement

Suisse00

Merci :)
Voilà le code pour que l'image ce déplace:

RECT coordonner;

void OnPaint(){
    PAINTSTRUCT ps;
    HDC hdc = BeginPaint(hWnd, &ps);
    DrawIcon(hdc, coordonner.left, coordonner.top, hicon);
    EndPaint(hWnd, &ps);
}

void setcoordonner(int x,int y){
    coordonner.top = y;
    coordonner.left = x;
    coordonner.bottom = coordonner.top + 31;
    coordonner.right = coordonner.left + 31;
}

Message a intercepter dans le CALLBACK de la fenêtre:

       case WM_LBUTTONDOWN:
            if(wParam==MK_LBUTTON){
            POINTS point;
            point = MAKEPOINTS(lParam);
            setcoordonner(point.x,point.y);
            InvalidateRect(hWnd,NULL, TRUE);
            }
         return 0;
       case WM_PAINT: OnPaint();         return 0;
------------------------------------------
Votre dévoué posseur de question :D


Cette discussion est classée dans : wm, hwnd, hdc, invalidaterect, coordonner


Répondre à ce message

Sujets en rapport avec ce message

Screenmate defectueux [ par anthraxx ] Anthrax ignisque -- Le charbon et le feu J'essaye de faire un screenmate (une petite bestiole se promenant sur les fenetres), mais n'etant pas tres ex Affichage bitmap [ par gregory6 ] GringoBonjour, je suis débutant ss visual C++ et j'aurai besoin d'un peu d'aide. Je crée un projet MFC ds lequel je crée une fenetre. Cette fenetre cr Decalement de 3 pixel dans le HDC [ par SnOOpss ] Bonjour !!! Pourquoi si je fait :     case WM_PAINT:         {     RECT rt;     PAINTSTRUCT ps;     HDC hdc = BeginPaint(GetParent(hwnd), &a Couleur de fenêtre [ par CyberP ] Comment changer la couleur d'arrière plan d'une fenêtre après l'avoir créée ?PAINTSTRUCT pps;HDC hdc;hdc = BeginPaint(hWnd, &pps);SelectObject(hdc, Cr HELP!! comment rafraichir [ par kuruma ] LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){   static string chemin;  static int count=0;  static bool se Inserer les images dans l'executable [ par juju0169 ] Bonjour à tous!!!Je voudrais savoir si quelqu'un pourrait l'aider à adapter cette fonction (qui marche) pour ne plus specifie l'adresse de mes images Re : WM_KEYDOWN interception touche clavier [ par gregory6 ] GringoBonjour, Je débute sous visual C++ et j'ai un petit problème sur les interceptions de touches au clavier. J'aimerai récupérer les touches du cla Application win et affichage valeur variable [ par ultima666 ] Bonjour je programme en fenpetre windows et je voudrais savoir comment afficher une valeur d'un int. exemple je voudrais voir a l'écran la valeur de i problème avec bitblt [ par gregory6 ] GringoBonjour,je suis développeur débutant sous visual C++ et les MFC. Je cherche à afficher le contenu d'un répertoire sur une page graphique que je win app et les variable [ par ultima666 ] Dsl de refaire un sujet dessus mais personne ne répond a l'autre.case WM_PAINT:{// Debut de WM_PAINTint i = 2;hDc = BeginPaint(hWnd, &ps);GetClientRec


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales