begin process at 2012 05 30 17:10:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Scroll listbox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales