begin process at 2010 02 10 08:48:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

.Net

 > DECOUPER ET REGROUPER UN FICHIER

DECOUPER ET REGROUPER UN FICHIER


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :.Net Niveau :Expert Date de création :23/06/2003 Date de mise à jour :23/06/2003 17:20:56 Vu / téléchargé :2 957 / 270

Auteur : JCDjcd

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note


 Description

Voila un programme qui se sert des TreeViews.

Plus il y a de commentaires, mieux ca sera.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture COLORATION SYNTAXIQUE
Source avec Zip Source avec une capture ORBITES DES SATELLITES GPS
Source avec Zip Source avec une capture DESSIN D'ARBRES
Source avec Zip Source avec une capture PROGRAMMATION LINEAIRE
Source avec Zip EXTENSION DE CORPS (MATH)

 Sources de la même categorie

Source avec Zip Source avec une capture MAP_MAKER_JEU par seekplus
Source avec Zip Source avec une capture Source .NET (Dotnet) EMISSION D'UN OCTET SUR LE PORT SÉRIE - CLASSE SERIALPORT par jmchatelet01
Source avec Zip Source .NET (Dotnet) RESOLV EQU DE DEGRES N par darckangel731
Source avec Zip Source avec une capture Source .NET (Dotnet) INTEROP XCHAT / .NET : CHARGEUR DE PLUGINS MANAGÉS par TeBeCo
Source avec Zip Source avec une capture Source .NET (Dotnet) SCANNER D'ADRESSES MAILS PRÉSENTENT SUR GOOGLE par Zaltez

Commentaires et avis

Commentaire de mikachiche le 23/06/2003 20:37:27

beau boulot
c propre c claire
c++

Commentaire de gdpasmini le 16/05/2006 14:51:52

oui bravo pour ce code. Il est vraiment bien fait. Je créé ma premiere IHM en ce moment et je me demandais, tu fais une étude importante avant de te lancer dans le code ??

Comment t'y prends tu pour mettre sur papier tout ce qui sera nécessaire au développement de ton interface ??

Pour ma part, j'ai pleins de variables globales dont j'aurais certainement pu me passé avec plus d'experience...

Commentaire de JCDjcd le 16/05/2006 15:45:01

Je ne mets pas TOUT sur papier, je mets seulement les grandes etapes, càd ce dont j'ai besoin, apres pour savoir COMMENT le faire, il faut prendre un brouillon pour programmer ... et puis j'avance. D'ailleurs il est impossible de faire du code qui marche sans papier, et sans debugger.

J'ai remarqué aussi qu'il fallait souvent traiter un cas général, plutot que le cas particulier que tu cherches a resoudre, car le plus souvent c'est plus simple a programmer, et surtout des fois tu n'as pas pensé a tout les choses, et tu vois que tu avais besoin de cette generalisation.

Il faut aussi avoir le soucis de lisibilité du code, car il est plus facile a debugger, de plus il faut partager le boulot, quand tu cherches à faire une fonction qui est complexe, crées d'autres sous-fonctions qui font le boulot.

Un dernier mot sur tes "variables globale", celles ne doivent etre utilisees qu'en dernier recours. S'il y a trop de variables globales, cela veut dire que le code est mal structuré. Les parametres des fonctions sont là pour (justement) résoudre ce probleme.

Commentaire de gdpasmini le 16/05/2006 16:18:45

C'est sympa de répondre aussi vite !!

La difficulté dans mon cas était que je ne connaissais pas l'API windows.. C'est pas évident de prévoir un programme sans connaitre sa structure !!

De plus, je crois que j'ai eu l'impatience du débutant ! Ca sert a ca les projets, a comprendre ses erreurs et a tenté de ne plus les commettre !!

Et merci encore pour ton code, c'est grace a ce genre de chose que l'on apprend le plus!!

Je tente vainement d'utiliser les treeview moi-meme mais c'est un peu galere.. Et je n'en ai que deux !! J'ai d'ailleurs un probleme etrange a résoudre.. Crois tu que tu pourrais m'aider ? Si ca te derange, pas de soucis !!

Commentaire de gdpasmini le 16/05/2006 16:18:59

C'est sympa de répondre aussi vite !!

La difficulté dans mon cas était que je ne connaissais pas l'API windows.. C'est pas évident de prévoir un programme sans connaitre sa structure !!

De plus, je crois que j'ai eu l'impatience du débutant ! Ca sert a ca les projets, a comprendre ses erreurs et a tenté de ne plus les commettre !!

Et merci encore pour ton code, c'est grace a ce genre de chose que l'on apprend le plus!!

Je tente vainement d'utiliser les treeview moi-meme mais c'est un peu galere.. Et je n'en ai que deux !! J'ai d'ailleurs un probleme etrange a résoudre.. Crois tu que tu pourrais m'aider ? Si ca te derange, pas de soucis !!

Commentaire de JCDjcd le 16/05/2006 16:32:48

Vas-y pour voir !

(moi aussi j'ai les fois les yeux plus gros que le ventre)

Commentaire de gdpasmini le 16/05/2006 16:44:32

Voila le code qui pose probleme :

case WM_NOTIFY:
TV_ITEM tv_item;
TV_ITEM tv_itemvideo;

if(lpnmh->hwndFrom == treeViewFlux)
{
switch (lpnmh->code)
  {
   case NM_CLICK :

    DWORD dwpos = GetMessagePos();
    ht.pt.x = GET_X_LPARAM(dwpos);
    ht.pt.y = GET_Y_LPARAM(dwpos);
    MapWindowPoints(HWND_DESKTOP, lpnmh->hwndFrom, &ht.pt, 1);
    TreeView_HitTest(lpnmh->hwndFrom, &ht);
    tv_item.mask = TVIF_HANDLE | TVIF_STATE;
    tv_item.hItem = ht.hItem;
    tv_item.stateMask = TVIS_STATEIMAGEMASK;
    TreeView_GetItem(treeViewFlux, &tv_item);

    affichageListeVideos(tv_item.lParam - tv_item.lParam%100, treeViewVideo);

   if(TVHT_ONITEMSTATEICON & ht.flags)
    {
       PostMessage(hwnd, UM_CHECKSTATECHANGE, 0, (LPARAM)ht.hItem);
     }
    break;
   }
}

elseif(lpnmh->hwndFrom == treeViewVideo)
{
  switch (lpnmh->code)
   {
    case NM_CLICK:
     tv_itemvideo.mask = TVIF_HANDLE | TVIF_TEXT;
     tv_itemvideo.hItem = htVideo.hItem;
     tv_itemvideo.stateMask = TVIS_STATEIMAGEMASK;
     TreeView_GetItem(treeViewVideo, &tv_itemvideo);

     printf("treeviewvideo lparam = %d\n", tv_itemvideo.lParam);
     SetCurrentDirectory(currentPath);
    break;
   }
}


Voila donc, j'ai deux treeview. la treeviewflux ne me pose pas de probleme. Lorsque je click dessus, je sais que j'ai le bon lParam de l'item clické.

Le probleme vient de l'autre treeview. Si je click sur l'un de ses item, la valeur du lParam est du style -169987523. ce qui est loin d'etre la valeur attendue !!!

je ne vois pas ou est le probleme...

Voila comment j'insere l'element qui s'affiche dans la treeview incriminée :  

                        tviis.hInsertAfter = TVI_LAST;
ZeroMemory(&(tviis.item), sizeof(TV_ITEM));
tviis.item.mask  = TVIF_TEXT | TVIF_IMAGE  | TVIF_SELECTEDIMAGE | TVIF_PARAM | TVIF_HANDLE | TVIF_STATE;
tviis.item.stateMask = TVIS_STATEIMAGEMASK;
tviis.hParent = TVI_ROOT;
tviis.item.lParam = pCurrentVideo->id;
tviis.item.pszText = pCurrentVideo->videoName;
TreeView_InsertItem(treeView, &tviis);

Merci du coup de main !!

Commentaire de gdpasmini le 16/05/2006 16:46:15

Ce probleme est aussi a cette adress :  http://www.developpez.net/forums/showthread.php?t=147436

Personne, jusqu'a présent n'a reussi a me dire ce qui n'allait pas...

Merci encore !

Commentaire de gdpasmini le 16/05/2006 17:11:46

Tu vois quel est le probleme ??

Commentaire de JCDjcd le 16/05/2006 17:32:03

tu fais elseif(lpnmh->hwndFrom == treeViewVideo)
{
  switch (lpnmh->code)
   {
    case NM_CLICK:
     tv_itemvideo.mask = TVIF_HANDLE | TVIF_TEXT; // !!! ICI !!!
     tv_itemvideo.hItem = htVideo.hItem;
     tv_itemvideo.stateMask = TVIS_STATEIMAGEMASK;
     TreeView_GetItem(treeViewVideo, &tv_itemvideo);

     printf("treeviewvideo lparam = %d\n", tv_itemvideo.lParam);
     SetCurrentDirectory(currentPath);
    break;
   }
}


si tu veux recuperer lParam, alors il faut mettre le 'flag' TVIF_PARAM, enfin je crois que c'est ca le probleme
La je ne parle pas de l'ajout, mais de l'appel a Get_Item.

Commentaire de gdpasmini le 16/05/2006 18:15:38

Désolé, le site buggait..

J'ai essayé mais ca ne marche pas mieux... D'autant plus que pour l'autre treeview, je n'ai pas mis ce mask et ca marche sans problemes... je comprend vraimenet pas...

Commentaire de JCDjcd le 16/05/2006 18:18:22

ouais mais il faut jouer avec le champ <stateMask> et non <mask>

Commentaire de gdpasmini le 17/05/2006 09:17:22

rehello !!

J'ai tout tenté, modifcation du mask, du statemask, rien y a fait... Je n'arrive pas a obtenir le lParam... Je comprends pas. On dirai qu'il ne pointe pas sur le bon HTREEITEM.

Si tu as une autre idée, je susi preneur ! Mais ca m'inquiète si toi non plus ne trouve pas mon erreur !

Merci en tout cas!

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

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

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