begin process at 2012 05 28 12:55:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

api win32 listview dans tabcontrol c++


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

api win32 listview dans tabcontrol c++

mercredi 10 juin 2009 à 12:34:44 | api win32 listview dans tabcontrol c++

Spunk62

Bonjour,
je cherche a mettre une listview dans un tab control (par exemple si onglet 1 afficher listview sinon non)
ma listview (reçois un tableau ):

 
void listview (HWND hlistview,HWND hDlg)
{
 
DestroyWindow(hlistview);
 
//MessageBox(NULL,tab[2][11],"barre de titre",MB_OK| MB_ICONEXCLAMATION);
// Définir le titre de la boite de dialogue:
SetWindowText(hDlg,tab[1][0]);
//Créer les controles:
 
hlistview=CreateWindowEx(WS_EX_CLIENTEDGE,WC_LISTVIEW,0, WS_CHILD | WS_VISIBLE | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL ,10, 30, 620, 320, hDlg, 0, 0, 0);
SendMessage(hlistview,LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );
// Créer les colonnes de la ListView:
LVCOLUMN lvc;
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT |LVCF_SUBITEM;
lvc.fmt = LVCFMT_CENTER;
lvc.iSubItem =0; lvc.cx = 0; lvc.pszText = 0;
 
for(d=0;d<12;d++)
{
SendMessage(hlistview,LVM_INSERTCOLUMN,d,(LPARAM)&lvc);
lvc.iSubItem =1; lvc.cx = 100; lvc.pszText =tab[2][d];
}
SendMessage(hlistview,LVM_INSERTCOLUMN,12,(LPARAM)&lvc);
// Ajout des éléments de la ListView:
lvi.mask=LVIF_TEXT | LVIF_STATE ;
//char* contenu[]={"1","France","Paris","2","Allemagne","Berlin","3","Angleterre","London","4","Italie","Rome","5","Espagne","Madrid"};
int i;
for(i=0;i<nbligne;i++)
{
for(c=0;c<=12;c++)
{
lvi.iItem=i;
lvi.iSubItem=c;
SendMessage(hlistview,LVM_INSERTITEM ,c,(LPARAM)&lvi);

lvi.iSubItem=c;
lvi.pszText=tab[i+3][c-1];
SendMessage(hlistview,LVM_SETITEMTEXT ,i,(LPARAM)&lvi);
}
}
}

le programme principale:

 
BOOL CALLBACK DlgProc(HWND hDlg,UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
static HWND hlistview;
 
HWND hTabCtrl = GetDlgItem(hDlg, IDC_TAB1);
TCITEM tci;
 
switch(message)
{
case WM_INITDIALOG:
 
tci.mask = TCIF_TEXT;
tci.pszText = "Onglet 2";
SendMessage(hTabCtrl, TCM_INSERTITEM, 1, (LPARAM) &tci);
tci.mask = TCIF_TEXT;
tci.pszText = "Onglet 1";
SendMessage(hTabCtrl, TCM_INSERTITEM, 0, (LPARAM) &tci);
 
//listview (hlistview,hDlg);

NMHDR nmhdr;
nmhdr.code=TCN_SELCHANGE;
nmhdr.hwndFrom=hTabCtrl;
SendMessage(hDlg,WM_NOTIFY,0,(LPARAM)&nmhdr);
 
break;
case WM_NOTIFY:
NMHDR* pnmh;
pnmh = (NMHDR*)lParam;
// S'assurer qu'il s'agit d'un changement d'onglet:
if(pnmh->hwndFrom == hTabCtrl && pnmh->code == TCN_SELCHANGE)
{
// Forcer le redessin du TabControl:
InvalidateRect(hTabCtrl,0,0);
// Obtenir l'index de l'onglet sélectionné:
int cursel=SendMessage(hTabCtrl,TCM_GETCURSEL,0,0);
// N'afficher que le Static correspondant à l'onglet sélectionné:
ShowWindow(hlistview,cursel==1);
 
return0;
}
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);

// Analyse les sélections de menu*:
switch(wmId)
{
 
case ID_FICHIER_QUITTER:
EndDialog(hDlg,0);
break;
case ID_FICHIER_OUVRIR:
chargertableau (hDlg);
//permet de charger un tableau a partir d'un fichier
 
break;
case ID_OUTILS_TABLEAU:
listview (hlistview,hDlg);
//affiche la listview
break;
}
break;//break du switch
break;//break du WM_COMMAND
 
case WM_CLOSE:
//Fermer la boite de dialogue:
EndDialog(hDlg,0);
break;
 
}
return0;
 
}
 

Il faudrait pouvoir insérer la listview dans l'onglet 1 par exemple.
pour une fenêtre simple je déclare le HWND dans case WM_INITDIALOG puis je fait un ShowWindow (HWND,cursel==1)(1 correspond l'onglet) dans case WM_NOTIFY.
Merci
jeudi 11 juin 2009 à 23:28:47 | Re : api win32 listview dans tabcontrol c++

Spunk62

Résolu !


Cette discussion est classée dans : listview, hdlg, lparam, lvc, hlistview


Répondre à ce message

Sujets en rapport avec ce message

PB Affichage ListView [ par Taron31 ] Bonjour, j'ai besoin dans mon programme d'une ListView, problème j'ai cherché pas mal de sources sur ce site et j'en ai essayé et ça n'a pas l'air de Gestion de la souris listview c++ api Win32 [ par Spunk62 ] Bonjour, je voudrai savoir comment récupérer la cellule d'une listview avec un click de la sourisvoila ce que j'ai fait:       case WM_LBUTTONUP:      Header d'une listview [ par SnOOpss ] Bonjour je cherche comment changer le headers d une list view ( couleurs ou fond ) j'ai trouvé ces fonctions la mais ca m'avance pas beaucoup si vous PB avec listview [ par julienbj ] J'ai cree un listview avec les styles:LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROPLVS_REPORT | LVS_EDITLABELSWS_VISIBLE |WS_CHILD | WS_TABSTOPDans ce list ListView_FindItem() -> passage de LVITEM à LVFINDINFO .lParam [ par dyroj ] Bonjour, je voudrai utiliser la fonction ListView_FindItem() dans une autre colonne que la 1ère . voila mon code qui ne fonctionne pas : //struct LV problème CreateDialog et afficher icone [ par Suisse00 ] J'ai un petit problème avec CreateDialog, il y a aucun fenêtre qui s'ouvre (VC++ 6)#include #include "resource.h"HWND hDlg;LRESULT Trie Listview [ par abdoulax ] Bonjours,Je voudrai trier les colonnes d'un listview, voici ma fonction de comparaison :HWND hList;int CALLBACK Compare(LPARAM lParam1, LPARAM lParam2 Boite de dialogue [ par bioopovega ] Bonjour,J'ai un petit probleme, quand je créer une boite de dialogue dans le fichier main.cpp, je n'est pas d'erreur, mais quand je veux inclure la cr Dialogue procedure dans une classe [ par bioopovega ] Bonjour,D'abord, je ne sais pas si cela correspond bien au thème, mais je ne sais pas ou le mettre.J'ai un probleme, je crée une boite de dialogue a p Hook clavier et fenêtre premier plan [ par krokro6 ] Salut à tous, j'ai un petit problème avec ce code la : #include #include #include #include using namespace std;#define DLLEXPORT  __declsp


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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,265 sec (4)

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