20/04/2024
Windev et les Api WindowsNb de visiteurs en ligne : 1
>> Introduction << >> Codes et Forum << >> Download <<


Rubrique : 3 - Champs       Sujet : Combo Boxes
Auteur Message
 °¨¨ JL ¨¨° Posté le : 23/06/2000 12:00:00


// Afficher le dropdown **************
cb_showdropdown est un entier long = 0x14F
sendmessage( handle("combo1") , cb_showdropdown , 1 , 0 )



// Afficher une liste de fichiers ********
// Combo non graphique
cb_dir est un entier long = 0x0145
cb_resetcontent est un entier long = 0x014B
DDL_READWRITE est un entier long = 0x0000
DDL_READONLY est un entier long = 0x0001
DDL_HIDDEN est un entier long = 0x0002
DDL_SYSTEM est un entier long = 0x0004
DDL_DIRECTORY est un entier long = 0x0010
DDL_ARCHIVE est un entier long = 0x0020
DDL_POSTMSGS est un entier long = 0x2000
DDL_DRIVES est un entier long = 0x4000
DDL_EXCLUSIVE est un entier long = 0x8000

ch est un chaine asciiz de 128="c:windowssystem*.dll"

sendmessage( handle("combo1") , cb_resetcontent , 0 , 0 )

listeajoute("COMBO1","")

nbfic est un entier = sendmessage( handle("combo1") , cb_dir , ddl_archive+ddl_hidden , &ch)

listesupprime("COMBO1",1)

info("Il y a "+nbfic+" fichiers *.dll dans ce répertoire")



// Ajouter une chaine de caractères ************
// Combo non graphique
ch est un chaine asciiz de 128="Chaine à ajouter !!"
cb_addstring est un entier long = 0x143
sendmessage( handle("combo1") , cb_addstring , 0 , &ch)



// Création d'un combo boxes **********
// styles fenêtre
ws_child est un entier long = 0x40000000
ws_border est un entier long = 0x00800000
ws_visible est un entier long = 0x10000000
ws_thickframe est un entier long = 0x00040000
ws_vscroll est un entier long = 0x00200000
// styles combo
cbs_simple est un entier long = 0x1
cbs_dropdown est un entier long = 0x2
cbs_dropdownlist est un entier long = 0x3
cbs_ownerdrawfixed est un entier long = 0x10
cbs_autohscroll est un entier long = 0x40
cbs_sort est un entier long = 0x100
cbs_hasstrings est un entier long = 0x200
cbs_uppercase est un entier long = 0x2000
cbs_lowercase est un entier long = 0x4000

style est un entier long = ws_child + ws_visible + ws_border + ws_vscroll + cbs_hasstrings + cbs_autohscroll + cbs_dropdownlist
style += cbs_uppercase

hwndcombo=AppelDLL32("user32","CreateWindowExA",0 ,"COMBOBOX","", style , 200 , 300 , 200 , 15*18 , handle() , null , instance() , NULL )

cb_setdroppedwidth est un entier long = 0x160
cb_setitemheight est un entier long = 0x153
sendmessage( hwndcombo , cb_setdroppedwidth , 300 , 0 )
sendmessage( hwndcombo , cb_setitemheight , 0 , 18 )

ind est un entier
ch est une chaine asciiz de 128
cb_addstring est un entier long = 0x143

pour ind=1 a 100
    ch="Chaine de Caractères "+ind
    sendmessage( hwndcombo , cb_addstring , 0 , &ch )
fin



// Déterminer la hauteur des lignes **********
cb_getitemheight est un entier long = 0x154
hautv est un entier = sendmessage( handle("combo1") , cb_getitemheight , -1 , 0 ) // partie visible
hautd est un entier = sendmessage( handle("combo1") , cb_getitemheight , 0 , 0 ) // dropdown
message(hautv+" "+hautd)



// Déterminer la largeur du dropdown *********
cb_getdroppedwidth est un entier long = 0x15F
largdropd est un entier = sendmessage( handle("combo1") , cb_getdroppedwidth , 0 , 0 )
message(largdropd)



// Déterminer le nombre d'items *******
cb_getcount est un entier long = 0x146
nbitems est un entier = sendmessage( handle("combo1") , cb_getcount , 0 , 0 )
info("Nombre d'items : "+nbitems)



// Modifier la hauteur des lignes *********
cb_setitemheight est un entier long = 0x153
sendmessage( handle("combo1") , cb_setitemheight , -1 , 30 ) // partie visible 30 pixels
sendmessage( handle("combo1") , cb_setitemheight , 0 , 25 ) // dropdown 25 pixels



// Modifier la largeur du dropdown sur la ligne la plus large *****
largeurcombo est un entier
ind est un entier
cb_setdroppedwidth est un entier long = 0x160
pour ind=1 a combo1..occurrence
    si textelargeur("COMBO1",combo1[ind])>largeurcombo alors
        largeurcombo=textelargeur("COMBO1",combo1[ind])
    fin
fin
sendmessage( handle("combo1"), cb_setdroppedwidth , largeurcombo+15 , 0 )



// Récupérer l'item survolé ***************
ancien_item est un entier long // pour l'item précédent
even est un entier long = evenement( "survolcombo" , "combo1" , 0x134 )

Procédure survolcombo()
item est un entier long = sendmessage( handle("combo1") , 0x0147 , 0 , 0 ) + 1
si ancien_item<>item alors
    message(item+"  "+combo1[item])
    ancien_item = item
fin



// Sélectionner une ligne d'après son contenu ***********
// Combo non graphique
cb_selectstring est un entier long = 0x14D
ch est un chaine asciiz de 128="Texte dans Combo"

// -1 pour rechercher du début à la fin
// n pour rechercher à partir du n ème élément
// res contient la ligne sélectionnée
res est un entier long = sendmessage( handle("combo1") , cb_selectstring , -1 , &ch )
message(res)



// Sélectionner une ligne d'après son indice *******
cb_setcursel est un entier long = 0x14E
// sélection de la ligne 5
sendmessage( handle("combo1") , cb_setcursel , 5 , 0 )



// Supprimer l'item sélectionné *********
cb_getcursel est un entier long = 0x147
cb_deletestring est un entier long = 0x144
sel est un entier = sendmessage( handle("combo1") , cb_getcursel , 0 , 0 )
sendmessage( handle("combo1") , cb_deletestring , sel , 0 )



// Supprimer tout le contenu *********
cb_getcount est un entier long = 0x14B
sendmessage( handle("combo1") , cb_resetcontent , 0 , 0 )