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

Windows Discussion :

Style de fenetre


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut Style de fenetre
    Bonjour,
    Dans une procedure de fenetre je voudrais isoler chaque composant du style fournis à la creation de la fenetre :
    1) Creation de la fenetre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       hchk1 = CreateWindow("checkbox", "", WS_CHILD | WS_VISIBLE | BST_CHECKED | BS_LEFTTEXT,
    			               10, 10,	80, 18,						
    			               hwnd, (HMENU)1,	hInst, NULL);
    Dans la procedure, le WM_CREATE
    btn->style = (UINT)((CREATESTRUCT *)lParam)->style;

    Comment isoler dans "style" le BST_CHECKED ou le BS_LEFTTEXT ?

    Merci.[/code]

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Ce sont des flags, donc on utilise une arithmétique binaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UINT style = (UINT)((CREATESTRUCT *)lParam)->style;
    if ( style & BS_LEFTTEXT == BS_LEFTTEXT )
    {
        // il y a le style BS_LEFTTEXT 
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    Ce sont des flags, donc on utilise une arithmétique binaire:
    Bonjour,
    Donc c'est la même chose sur une zone déclarée dans une procedure.
    Parceque j'ai un problème sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    case WM_LBUTTONDOWN :
                 btn = (BUTTON *)GetWindowLong(hwnd,0);
                 btn->state ^= BST_CHECKED;
                 btn->state |= BST_FOCUS;
                 hdc = GetDC(hwnd);
    			 DrawItem(hwnd,hdc,btn->style,btn->state);
                 ReleaseDC(hwnd,hdc);
                 return 0;
    Ma case est bien coché et se décoche à chaque appui sur le bouton gauche mais le pointillé du focus fait la même chose !!!
    Pour le tester plus loin je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(state & BST_FOCUS)
              DrawFocusRect(hdc,&rc);
    Merci encore.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Citation Envoyé par dede92
    Ma case est bien coché et se décoche à chaque appui sur le bouton gauche mais le pointillé du focus fait la même chose !!!
    Je n'ai pas fait attention a la remarque sur MSDN :
    Because DrawFocusRect is an XOR function, calling it a second time with the same rectangle removes the rectangle from the screen.

    This function draws a rectangle that cannot be scrolled. To scroll an area containing a rectangle drawn by this function, call DrawFocusRect to remove the rectangle from the screen, scroll the area, and then call DrawFocusRect again to draw the rectangle in the new position.

  5. #5
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Résolu ? Si oui clique sur le bouton.

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

Discussions similaires

  1. [C#] Modifier le style d'une fenetre windows
    Par Vince57 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 05/10/2011, 03h27
  2. Style de fenetre
    Par adrien954 dans le forum C++Builder
    Réponses: 1
    Dernier message: 18/12/2010, 20h53
  3. Fenetre avec 2 style de Layout
    Par Dsphinx dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 26/04/2007, 11h45
  4. Fenetre style Barre de tache
    Par DonChoa dans le forum Delphi
    Réponses: 10
    Dernier message: 02/10/2006, 15h56
  5. [Swing]Style de Fenetre Java
    Par Voxdei dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 14/07/2004, 22h48

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