IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[API Window C++] Probleme de rafraichissement de la fenetre


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut [API Window C++] Probleme de rafraichissement de la fenetre
    Bonjour,

    J'ai un soucis que je n'arrive pas a résoudre, lorsque je redimensionne ma fenêtre en tirant en bas a droite j'ai une trainée au niveau de la fenêtre windows.

    dans le WM_PAINT le code suivant fonctionne parfaitement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    PAINTSTRUCT ps;
    	HDC hdc = BeginPaint(MainHWND(), &ps);
     
    	// All painting occurs here, between BeginPaint and EndPaint.
     
    	FillRect(hdc, &ps.rcPaint, (HBRUSH)(COLOR_WINDOW + 1));
     
    	EndPaint(MainHWND(), &ps);
    mais le code suivant que je devrait utiliser ne fonctionne pas, la fenêtre ne se mat pas à jours:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    HDC			hdcMem;
    	HBITMAP		hbmMem;
    	PAINTSTRUCT ps;
     
    	//hRgnUpdate = ::CreateRectRgn(0, 0, 0, 0);
    	//::GetUpdateRgn(MainHWND(), hRgnUpdate, FALSE);
    	::BeginPaint(MainHWND(), &ps);
     
    	RECT rc;
    	::GetClientRect(MainHWND(), &rc);
     
    	hdcMem = CreateCompatibleDC(ps.hdc);
    	hbmMem = CreateCompatibleBitmap(ps.hdc, rc.right - rc.left, rc.bottom - rc.top);
     
    	SelectObject(hdcMem, hbmMem);
     
    	int width = rc.right - rc.left;
    	int height = rc.bottom - rc.top;
     
    	RECT rect = { 0, 0, width, height };
     
    	DWORD fill = SetBkColor(hdcMem, COLOR_WINDOW);
    	ExtTextOut(hdcMem, 0, 0,  ETO_CLIPPED, &rect, TEXT(""), 0, NULL);
    	SetBkColor(hdcMem, fill);
     
     
    	DeleteDC(hdcMem);
    	DeleteObject(hbmMem);
    	::EndPaint(MainHWND(), &ps);
    	//DeleteObject(hRgnUpdate);
     
    	/*if (hRgnUpdate) {
    		::DeleteRgn(hRgnUpdate);
    		hRgnUpdate = 0;
    	}*/
    J'ai tenté de modifier l'ordre des DeleteObject a la fin mais ça ne donne rien ainsi que ETO_OPAQUE au lieu de ETO_CLIPPED, ETO_OPAQUE me met la window en noir.

    Avez vous une idée ?

    Merci de votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut
    en ajoutant la ligne suivante ca fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BitBlt(hdc, 0, 0, width, height, hdcMem, 0, 0, SRCCOPY);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme API windows FtpOpenFile
    Par Razgort dans le forum Langage
    Réponses: 5
    Dernier message: 25/11/2013, 17h38
  2. Probleme de rafraichissement de la fenetre
    Par Flow_75 dans le forum GTK+
    Réponses: 7
    Dernier message: 03/09/2009, 15h04
  3. problemes MVS et l'API Windows
    Par lylyo dans le forum C++
    Réponses: 3
    Dernier message: 22/03/2008, 17h09
  4. [API Windows] Probleme avec EDITTEXT et LISTBOX
    Par Dev-FX dans le forum Windows
    Réponses: 6
    Dernier message: 27/12/2006, 13h42
  5. [MFC] probleme de rafraichissement d'une fenetre
    Par jiraya43 dans le forum MFC
    Réponses: 5
    Dernier message: 18/05/2006, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo