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

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    525
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 525
    Points : 212
    Points
    212
    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 éminent sénior

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    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 actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    525
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 525
    Points : 212
    Points
    212
    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 actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    525
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 525
    Points : 212
    Points
    212
    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 éminent sénior

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    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