List view (tres simple)

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

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.