ListIcon et redimensionnement colonnes - comment faire pour

Sujets variés concernant le développement en PureBasic
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

ListIcon et redimensionnement colonnes - comment faire pour

Message par Anonyme2 »

J'ai cherché un peu mais je n'ai pas trouvé et j'ai pas envie de passer des jours la-dessus.

Il me semblait avoir vu passer un code sur le forum anglais pour ceci :

J'aimerais lorsque je passe avec la souris sur le trait qui sépare 2 boutons de l'entête et que je clique en maintenant enfoncé le bouton de la souris, que trait vertical soit dessiné et si je déplace la souris, c'est le trait qui se déplace et si je lâche le bouton de la souris, la colonne est redimensionnée en fonction.

Comme dirais KCC, ya quiquin qui a ça sous le coude ? ou un lien sur du code.

Merci
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: ListIcon et redimensionnement colonnes - comment faire p

Message par Marc56 »

Denis a écrit :...
J'aimerais lorsque je passe avec la souris sur le trait qui sépare 2 boutons de l'entête et que je clique en maintenant enfoncé le bouton de la souris, que trait vertical soit dessiné et si je déplace la souris, c'est le trait qui se déplace et si je lâche le bouton de la souris, la colonne est redimensionnée en fonction.
...
Je ne sais pas si j'ai bien compris la question. En gros tu veux que le trait de séparation de colonne s'affiche sur tout le gadget au moment du redimensionnement et non pas juste sur l'entête ?

Si c'est ça, alors j'ai trouvé ça: (deuxième code)
http://www.purebasic.fr/english/viewtop ... 13&t=61914

(mots-clés utilisés dans la recherche du forum (us): « lisitcon resize »)

:wink:
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: ListIcon et redimensionnement colonnes - comment faire p

Message par Anonyme2 »

Marc56,
tu as bien compris

Merci à vous deux, je vais regarder vos codes
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: ListIcon et redimensionnement colonnes - comment faire p

Message par Anonyme2 »

Finalement c'est pas ce que je recherche.
Le code de Rashad je l'ai, il redimensionne automatiquement, c'est pas ce que je recherche.

Actuellement, j'intercepte l'événement #HDN_DIVIDERDBLCLICK (sur #WM_NOTIFY) et je retourne #true ce qui empêche l'icône de redimensionnement d'être dessinée et on interdit le redimensionnement des colonnes à la souris.

Je voudrais maintenant pouvoir dessiner un trait vertical etc. pour redimensionner les colonnes.

Je vais chercher un peu mais j'ai pas envie :roll:
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ListIcon et redimensionnement colonnes - comment faire p

Message par Ar-S »

Ce code de Gnozal peut-être ?

Code : Tout sélectionner

;Autor: gnozal

EnableExplicit

Define EventID

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ListIconGadget(1,10,10,WindowWidth(0)-20,WindowHeight(0)-20,"Spalte 1",150,#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines)
  AddGadgetColumn(1,1,"Spalte 2",150)
  AddGadgetColumn(1,2,"Spalte 3",150)
  
  SendMessage_(GadgetID(1),#LVM_SETEXTENDEDLISTVIEWSTYLE,#LVS_EX_GRIDLINES,#LVS_EX_GRIDLINES)
  
  Repeat
    EventID=WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: ListIcon et redimensionnement colonnes - comment faire p

Message par Shadow »

Chez moi la commande ne fonctionne pas, aucun effet !

Code : Tout sélectionner

SendMessage_(GadgetID(1),#LVM_SETEXTENDEDLISTVIEWSTYLE,#LVS_EX_GRIDLINES,#LVS_EX_GRIDLINES)
PB 5.41 LTS 64.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: ListIcon et redimensionnement colonnes - comment faire p

Message par Anonyme2 »

SendMessage_(GadgetID(1),#LVM_SETEXTENDEDLISTVIEWSTYLE,#LVS_EX_GRIDLINES,#LVS_EX_GRIDLINES)

permet d'afficher le quadrillage version Microsoft.

Le quadrillage de PB est un quadrillage maison, si on utilise ce message, il ne faut pas avoir défini le paramètre PB_ListIcon_GridLines sinon il y aura un affichage en surépaisseur.

SendMessage_(GadgetID(1),#LVM_SETEXTENDEDLISTVIEWSTYLE,#LVS_EX_GRIDLINES, 0) supprime l'affichage du quadrillage (idem pour la remarque).

La solution je pense doit passer par une callback.

Merci
Dernière modification par Anonyme2 le mer. 09/mars/2016 19:26, modifié 1 fois.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: ListIcon et redimensionnement colonnes - comment faire p

Message par Anonyme2 »

Shadow a écrit :Chez moi la commande ne fonctionne pas, aucun effet !

Code : Tout sélectionner

SendMessage_(GadgetID(1),#LVM_SETEXTENDEDLISTVIEWSTYLE,#LVS_EX_GRIDLINES,#LVS_EX_GRIDLINES)
PB 5.41 LTS 64.

Ton gadget n'a pas le numéro 1 car ce message fonctionne parfaitement en 32/64 bit, c'est une des commandes de ma librairie en asm.

Ou alors ta Listicon n'est pas en mode report (affichage colonnes).

Il y a un problème dans ton code.
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: ListIcon et redimensionnement colonnes - comment faire p

Message par kernadec »

http://www.purebasic.fr/french/viewtopi ... t=listicon

Bonjour a tous
En ce moment je suis sur mon mobile, je n' ai plus le temp de rien
mais je pense me rappeller que dans cet essai de Listicon
y avoir mis pas mal d options, mais desole!! je ne l' ai pas teste
avec les dernieres versions PB

Cordialement
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: ListIcon et redimensionnement colonnes - comment faire p

Message par Anonyme2 »

Merci kernadec,

je vais regarder ce lien.

Je potasse la doc Microsoft, j'ai un peu avancé mais pas encore assez :roll:
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: ListIcon et redimensionnement colonnes - comment faire p

Message par Anonyme2 »

J'ai dit une connerie,

#HDN_DIVIDERDBLCLICK permet d'interdire (retourner #true) le redimensionnement automatique par double clic.

C'est l'interception du message #WM_SETCURSOR dans la callback du header (et pas de la listicon) qui permet de dessiner ou non l'icône système, retourner #true pour interdire le redessinement

Code : Tout sélectionner

 Macro MAC_MakePoints(valeur, pt)
      ;// valeur doit être un long (=.l) et pt : pt.point
      pt\x = MAC_LOWORD(valeur)
      pt\y = MAC_HIWORD(valeur)
EndMacro

Macro MAC_HIWORD(Value)
      (Value >> 16) & $FFFF
EndMacro

Macro MAC_LOWORD(Value)
      Value & $FFFF
EndMacro

      ;// mémorise les données utilisées avec le message #HDM_HITTEST
      Protected phdhti.HDHITTESTINFO

           Case #WM_SETCURSOR
                  ;// interdit le changement de curseur lorsque le curseur souris est sur le
                  ;// diviseur de la colonne
                  MAC_MakePoints(GetMessagePos_(), phdhti\pt)
                  If ScreenToClient_(Window, @phdhti)
                        Colonne = SendMessage_(Window, #HDM_HITTEST, 0, @phdhti)
                        If Colonne <> - 1 And (phdhti\flags & (#HHT_ONDIVIDER|#HHT_ONDIVOPEN))
                              ProcedureReturn #True
                        EndIf
                  EndIf
Répondre