Accueil > Forum > > > > Scroll listbox
Scroll listbox
jeudi 8 avril 2004 à 17:58:30 |
Scroll listbox

c2millet
|
Bonjour Voilà mon pb: G créé dans une fenetre une listbox et g bien le scroll vertical, mais je n'ai pas le scroll horizontal qd mon texte et + grand que ma listbox. je fais ma listbost comme ça: CreateWindowEx(WS_EX_CLIENTEDGE,"LISTBOX",NULL,WS_VISIBLE|WS_CHILD|LBS_SORT|LBS_NOTIFY|WS_VSCROLL|WS_HSCROLL,410,50,120,200,winhWnd,(HMENU)LISTBOX_CONTACT,hInstance,NULL); Si qqun peutmaider merci
|
|
samedi 10 avril 2004 à 23:10:24 |
Re : Scroll listbox

ymca2003
|
exemple de code : ListBox.cpp : //************************************************// ListBox.cpp : // //************************************************ #include <windows.h> #include "Resource.h"
HINSTANCE g_hAppInstance= NULL; HWND g_hMainDlg = NULL;
static HWND s_hListBox= NULL; static HWND s_hEdit= NULL; static HWND s_hBtnAdd= NULL; static HWND s_hBtnModify= NULL; static HWND s_hBtnDelete= NULL;
static int s_nMaxWidth= 0;
static int GetMaxTextWidth();
static int CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
static BOOL OnInitDialog(HWND, WPARAM, LPARAM); static void OnCommand(WPARAM, LPARAM); static void OnBtnAdd (); static void OnBtnModify(); static void OnBtnDelete();
//************************************************// WinMain : //************************************************int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdine, int nCmdShow) { // ouverture boîte de dialogue principale. g_hAppInstance = hInstance; return DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAINDIALOG), NULL, DlgProc); }
//************************************************// GetMaxTextWidth : recherche la largeur maximale d'une ligne de texte dans une ListBox. // entrée : hLst : handle de la ListBox. // retour : largeur maximale d'une ligne de texte (en pixel). //************************************************int GetMaxTextWidth(HWND hLst) { // DC de la ListBox, nombre d'élément HDC hdc = GetDC(hLst); int nCount = SendMessage(hLst, LB_GETCOUNT, 0, 0);
// recherche du texte le plus large int nMaxWidth = 0; for(int i = 0; i < nCount; i++) { // texte de l'item char szText[256]; SendMessage(hLst, LB_GETTEXT, i, (LPARAM)szText);
// largeur du texte SIZE size; GetTextExtentPoint32(hdc, szText, strlen(szText), &size); if(size.cx > nMaxWidth) nMaxWidth = size.cx; }
// retour return nMaxWidth; }
//************************************************// DlgProc : //************************************************int CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { // en fonction du message. switch(uMsg) { case WM_INITDIALOG : return OnInitDialog(hDlg, wParam, lParam); case WM_COMMAND: OnCommand(wParam, lParam); break; } return 0; }
//************************************************// OnInitDialog : //************************************************BOOL OnInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam) { // affectation handles g_hMainDlg= hDlg; s_hListBox = GetDlgItem(hDlg, IDC_LISTBOX); s_hEdit = GetDlgItem(hDlg, IDC_EDIT); s_hBtnAdd = GetDlgItem(hDlg, IDC_BTN_ADD); s_hBtnModify= GetDlgItem(hDlg, IDC_BTN_MODIFY); s_hBtnDelete= GetDlgItem(hDlg, IDC_BTN_DELETE);
// initialisation paramètres du scrollbar de la listbox s_nMaxWidth = 0; SendMessage(s_hListBox, LB_SETHORIZONTALEXTENT, s_nMaxWidth, 0); return TRUE; }
//************************************************// OnCommand : //************************************************void OnCommand(WPARAM wParam, LPARAM lParam) { // en fonction de l'Id du contrôle int nIDCtl = LOWORD(wParam); switch(nIDCtl) { case IDC_BTN_ADD : OnBtnAdd();break; case IDC_BTN_MODIFY : OnBtnModify();break; case IDC_BTN_DELETE : OnBtnDelete();break; case IDCANCEL: EndDialog(g_hMainDlg, IDCANCEL);break; } }
//************************************************// OnBtnAdd : //************************************************void OnBtnAdd() { // ajout d'un item char szText[256]; GetWindowText(s_hEdit, szText, 256); SendMessage(s_hListBox, LB_ADDSTRING, 0, (LPARAM)szText);
// taille du texte SIZE size; HDC hdc = GetDC(s_hListBox); GetTextExtentPoint32(hdc, szText, strlen(szText), &size); ReleaseDC(s_hListBox, hdc);
// si ce texte est plus grand que l'actuel max, mettre à jour le ScrollBar if(size.cx > s_nMaxWidth) { s_nMaxWidth = size.cx; SendMessage(s_hListBox, LB_SETHORIZONTALEXTENT, s_nMaxWidth, 0); } }
//************************************************// OnBtnModify : //************************************************void OnBtnModify() { // modification del'item sélectionné char szText[256]; GetWindowText(s_hEdit, szText, 256); int index = SendMessage(s_hListBox, LB_GETCURSEL, 0, 0); SendMessage(s_hListBox, LB_DELETESTRING, index, 0); SendMessage(s_hListBox, LB_INSERTSTRING, index, (LPARAM) szText);
// taille du texte SIZE size; HDC hdc = GetDC(s_hListBox); GetTextExtentPoint32(hdc, szText, strlen(szText), &size); ReleaseDC(s_hListBox, hdc);
// mise à jour du ScrollBar if(size.cx > s_nMaxWidth) s_nMaxWidth = size.cx; else s_nMaxWidth = GetMaxTextWidth(s_hListBox); SendMessage(s_hListBox, LB_SETHORIZONTALEXTENT, s_nMaxWidth, 0); }
//************************************************// OnBtnDelete : //************************************************void OnBtnDelete() { // supression de l'item sélectionné int index = SendMessage(s_hListBox, LB_GETCURSEL, 0, 0); SendMessage(s_hListBox, LB_DELETESTRING, index, 0);
// mise à jour du ScrollBar s_nMaxWidth = GetMaxTextWidth(s_hListBox); SendMessage(s_hListBox, LB_SETHORIZONTALEXTENT, s_nMaxWidth, 0); }
|
"Resource.h" //{{NO_DEPENDENCIES}} // Microsoft Developer Studio generated include file. // Used by ListBox.rc // #define IDD_MAINDIALOG 101 #define IDC_LISTBOX 1000 #define IDC_EDIT 1001 #define IDC_BTN_ADD 1002 #define IDC_BTN_MODIFY 1003 #define IDC_BTN_DELETE 1004
// Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 102 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1005 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif
|
"ListBox.rc" //Microsoft Developer Studio generated resource script. // #include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h"
///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS
///////////////////////////////////////////////////////////////////////////// // French (France) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) #ifdef _WIN32 LANGUAGE LANG_FRENCH, SUBLANG_FRENCH #pragma code_page(1252) #endif //_WIN32
#ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE //
1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END
2 TEXTINCLUDE DISCARDABLE BEGIN "#include ""afxres.h""\r\n" "\0" END
3 TEXTINCLUDE DISCARDABLE BEGIN "\r\n" "\0" END
#endif // APSTUDIO_INVOKED
///////////////////////////////////////////////////////////////////////////// // // Dialog //
IDD_MAINDIALOG DIALOG DISCARDABLE 0, 0, 280, 170 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Dialog" FONT 8, "MS Sans Serif" BEGIN LISTBOX IDC_LISTBOX,10,10,110,150,LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP EDITTEXT IDC_EDIT,130,10,140,14,ES_AUTOHSCROLL DEFPUSHBUTTON "Ajouter",IDC_BTN_ADD,130,40,50,14 PUSHBUTTON "Modifier",IDC_BTN_MODIFY,130,60,50,14 PUSHBUTTON "Supprimer",IDC_BTN_DELETE,130,80,50,14 END
///////////////////////////////////////////////////////////////////////////// // // DESIGNINFO //
#ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO DISCARDABLE BEGIN IDD_MAINDIALOG, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 273 TOPMARGIN, 7 BOTTOMMARGIN, 163 END END #endif // APSTUDIO_INVOKED
#endif // French (France) resources /////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. //
///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED
|
|
|
Cette discussion est classée dans : listbox, scroll, ws, lbs
Répondre à ce message
Sujets en rapport avec ce message
Probleme listbox LBS_OWNERDRAWFIXED [ par fredsor ]
Bonjour,Je galere depuis plusieurs jours pour essayer de mettre des couleurs de fond a certaines lignes de ma listbox...J'ai trouvé quelques exemples,
Probleme Listbox ! [ par barraq ]
Bonjour, Voila je developpe un petit programme et j'ai un bug que j'arrive pas a corriger !!!!! Bon voila le bug, j'ai créé un list box multi selecti
Item de listbox selectionné ? [ par fuckit756 ]
Bonjour à tous,J'ai crée une ListBox sous dev-c++ et j'essaie de savoir si certains éléments de la listbox sont sélectionnés afin de d'effectuer diffé
[Win32] Comment combiner status bar et scroll bar ? [ par beausoleil ]
Bonjour à tous,Voilà mon problème : je cherche à créer une fenêtre possédant à la fois une barre d'état et des barres de défilement.Je crée ma fenêtre
Focus et couleur... en C pour PocketPC [ par fredsor ]
Bonjour a vousDans mon projet, je dois créer différents composant visuel pour Pocket PC : libellé, editbox,bouton et listbox (la aussi pa le choix)- C
Cherche LISTBOX et Couleur de son Scroll, désespérement ! [ par timy94 ]
Bonjour çà tous.J'ai créé un ListBox avec Visual Studio C++ avec la propriété / styles Disable noscroll. Donc j'ai une belle liste box avec un beau s
bouton 2 etats [ par mcallan ]
Bonjour,Comment faites t on ?Sous windows en API WIN32 , on peut ajouter un bouton dans une fenetre CreateWindow("button", ..., WS_CHILD|WS_VISIBLE|BS
ListBox [ par shadow1779 ]
Bonsoir,dans un mp3 que je crée avec fmod je me suis fait une playlist qui ajoute chaque fichier que l'on ouvre dans une listbox, je veux ensuite que
listbox [ par anonyme_man_in_this_world ]
salut !!comment recuperer un chaine dans listbox ?merçi d'avance
ListBox et GetText [ par anonyme_man_in_this_world ]
salut !!comment recuperer le text selectionné dans une list box ?j'ai essayé ceci mais ça n'a pas marché :char Text[256] ; int sel = SendDlgItemMes
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|