List view (tres simple)

Soyez le premier à donner votre avis sur cette source.

Vue 5 007 fois - Téléchargée 500 fois

Description

Voici un exemple de ListView de tous les noms (les pseudo) des personnes qui sont passer sur cppfrance.com (le 1 juillet a 21h05).
Il n'y a pas d'icone.

Mais bon, il y a le changement de couleur.

Cette source est assez simple.

Source / Exemple :


//************************************************************
#include <windows.h>
#include <commctrl.h>
#include <string.h>
#include <stdio.h>
#include "resource.h"

LRESULT CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);
void InitListView(HWND,char *);
//************************************************************

int WINAPI WinMain(
                  HINSTANCE hInstance,
                  HINSTANCE hPrevInstance,
                  PSTR      szCmdLine,
                  int       iCmdShow
                  )
{
DialogBox(
          hInstance,
          MAKEINTRESOURCE(IDD_DIALOG),
          NULL,
          DlgProc
          );
return 0;
}

LRESULT CALLBACK DlgProc(
                        HWND      hDlg,
                        UINT      iMsg,
                        WPARAM    wParam,
                        LPARAM    lParam
                        )
{
static HWND hwndListView;

switch (iMsg)
  {
  case WM_INITDIALOG:
    {
    hwndListView = GetDlgItem(hDlg,IDC_LISTVIEW);
    // on change les couleurs
    ListView_SetBkColor(hwndListView,RGB(255,0,0));
    ListView_SetTextBkColor(hwndListView,RGB(255,255,0));
    ListView_SetTextColor(hwndListView,RGB(150,0,200));
    // on change le style
    SetWindowLong(hwndListView,GWL_STYLE,GetWindowLong(hwndListView,GWL_STYLE) | LVS_LIST);

	  return 0;
    }
  case WM_COMMAND:
    {
    switch(wParam)
      {
      case IDC_BUTTON:
        {
        FILE *f;
        if((f = fopen("noms.txt","rt")) == NULL)
          {
          MessageBox(hDlg,"Impossible d'ouvrir 'noms.txt' !","Probleme d'initialisation :",MB_ICONERROR);
          }
        else
          {
          char buf[256];

          ListView_DeleteAllItems(hwndListView);
          fgets(buf,255,f);
          do
            {
            InitListView(hwndListView,buf);
            fgets(buf,255,f);
            }while(!feof(f));
          }
        return 0;
        }
      }
    break;
    }
  // -------------------------------------
  case WM_SYSCOMMAND:
    {
    switch(LOWORD(wParam))
      {
      // si on veut quitter
      case SC_CLOSE:
        {
        EndDialog(hDlg,FALSE);
        break;
        }
      }
    break;
    }    
  }

return 0;
}

//************************************************************
// ajoute un item a un ListView
void InitListView(HWND hwnd,char *text)
{
LV_ITEM lvi;

// initialisation des champs de la structure
lvi.mask        = LVIF_TEXT | LVIF_PARAM | LVIF_STATE; 
lvi.state       = 0; 
lvi.stateMask   = 0;
lvi.cchTextMax  = strlen(text);
lvi.pszText     = text;
lvi.iImage      = 0;
lvi.iItem       = 0;
lvi.iSubItem    = 0;

ListView_InsertItem(hwnd,&lvi);
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
3
Normalement je devrait le faire, mais il compile bien !
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

- Tu pas initialisé les common-controls, ton programme ne peux pas marcher.

- J'ai regardé rapidement (peut-être trop rapidement) le fichier projet et j'ai pas trouvé la librairie des common-controls, ton programme ne peux pas compiler.

- Evite de mettre les exécutables en mode debug dans ton zip.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.