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

Visual C++ Discussion :

[API Windows] Utiliser le hDC avec un EDIT


Sujet :

Visual C++

  1. #1
    Membre régulier Avatar de Dev-FX
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 93
    Points
    93
    Par défaut [API Windows] Utiliser le hDC avec un EDIT
    Salut ,

    J'aimerais savoir comment dessiner dans un EDIT ou RICHEDIT ;
    je récupère le hDC
    // Les Variables
    HDC hDC;
    PAINTSTRUCT ps;

    case WM_PAINT:
    hDC = BeginPaint(hEdt, &ps);
    EndPaint(hEdt, &ps);
    return TRUE;
    Mais , quand j'utilise la fonction rectangle() , rien ne s'affiche !
    Le truc , c'est que je veux ajouter la marge a gauche et les numéros de lignes au control EDIT .

    Merci .

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Le WM_PAINT est pour ta fenêtre, pas pour l'edit.
    Quand tu tentes un BeginPaint() sur l'Edit, son Update Region doit être nulle, donc la Clipping Region du HDC obtenu l'est aussi --> Rien de ce que tu dessines n'apparaît.

    Si tu veux jouer ainsi avec le BeginPaint(), précède-le d'un UpdateWindow() PUIS un InvalidateRect() sur l'Edit.
    (redessine l'Edit, puis te permet de dessiner dessus avec BeginPaint()).


    PS: Ton avatar, il signifie "Linux Sucks" ?

  3. #3
    Membre régulier Avatar de Dev-FX
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 93
    Points
    93
    Par défaut
    Salut ,


    Merci pour la réponse , ca marche maintenant , voici le code :

    //Les Variables :
    HDC hDC;
    PAINTSTRUCT ps;
    HBRUSH hbRed, hbrOld;
    LPCRECT lpRect = NULL;

    case WM_PAINT:
    {
    UpdateWindow(hEdt);
    InvalidateRect(hEdt,lpRect,0);

    hDC = BeginPaint(hEdt, &ps);
    hbRed = CreateSolidBrush(0x000000FF);
    hbrOld = SelectObject(hDC,hbRed);
    Rectangle(hDC, 0, 0, 20, 400);

    EndPaint(hEdt, &ps);
    return TRUE;
    }
    Le problème , c'est que au départ (lors de la création de la fenêtre pour la première fois ) , la marge ne s'affiche pas , il faut que je lui change la taille (pour la notification WM_SIZE ) pour que ca marche .
    Et donc je pense qu'il faut afficher la marge "a la main" au lacement de l’application .

    Médinoc
    PS: Ton avatar, il signifie "Linux Sucks" ?
    Ouais , Linux prouve toujours son efficacité face a Windows !!

    Merci .

  4. #4
    Membre régulier Avatar de Dev-FX
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 93
    Points
    93
    Par défaut
    Salut ,

    J'ai resolu ce probleme , maintenant quand je modifie le contenu du richedit , une partie du dessin s'efface , et donc il faut la mettre a jour (l'invalider).
    Mais quand ?

    Merci de m'aider .

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/11/2010, 15h11
  2. Réponses: 1
    Dernier message: 12/12/2007, 10h35
  3. [Débutant] API WINDOWS pb de linker avec DEV-C++
    Par coolmaxou dans le forum Windows
    Réponses: 3
    Dernier message: 12/07/2005, 09h24
  4. Utilisation de Pointeurs dans API windows
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 13/03/2003, 22h39
  5. Utiliser Borland C++ avec Emacs sous Windows
    Par Eikichi dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/03/2003, 08h40

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