List view (tres simple)

0/5 (2 avis)

Vue 5 369 fois - Téléchargée 538 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
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
2 juil. 2003 à 00:05
Normalement je devrait le faire, mais il compile bien !
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
1 juil. 2003 à 22:05
- 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.