begin process at 2008 08 29 22:13:55
1 233 909 membres
430 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ENUMERATION DES FENETRES


Information sur la source

Catégorie :API Niveau : Initié Date de création : 10/10/2004 Vu / téléchargé: 3 683 / 389

Note :
3,5 / 10 - par 2 personnes
3,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (21)
Ajouter un commentaire et/ou une note

Description

une boite de dialogue composée de deux listebox, une affiche la liste des fenetres principales et la deuxiemes les fenetres enfants relatives à chacune d'elles, + deux boutons pour fermer la fenetre selectionnée
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de AlexMAN le 10/10/2004 10:52:48

    Bonjour,

    Un ptit conseil deja : Crée un projet vide pour ne pas avoir ces "stdafx.xx" paske c chiant (tu peux ps compiler sans) et c moche (je trouve).
    Et ensuite une kestion :  Pkoi utiliser tchar.h et donc _tWinMain, TCHAR...Etc ?

    Voila, merci

    ++

  • signaler à un administrateur
    Commentaire de AlexMAN le 10/10/2004 10:58:12

    Oula, jviens de regarder le code, et j'ai maintenant kelk ptites ramark :

    int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
    {
    hHeap=GetProcessHeap(); //obtenir le heap de l'application
    WNDCLASSEX wcex;
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc = (WNDPROC)WndProc;
    wcex.cbClsExtra = 0;
    wcex.cbWndExtra = 0;
    wcex.hInstance = hInstance;
    wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_FENETRES);
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName = NULL;
    wcex.lpszClassName = "FENETRES";
    wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);

    if(!RegisterClassEx(&wcex))return(0); //enregistrement de la classe de la fenetre
    DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)Dialog); //chargement de la boite de dialogue
    return (0);
    }

    Pkoi tu initialise une structure WNDCLASSEX ? Tu appelles ici une dialogbox, ca n'a rien a faire ici !

    Ensuite, ds ton appel a la fonction DialogBox, Tu peux eviter le cast du 4eme param en prototypant bien ta fonction :

    BOOL CALLBACK DlgProc(..)
    et non LRESULT...

    WM_INITDIALOG doit renvoyer 1, donc TRUE et non pas FALSE.

    Bon ben c tt pour le moment.

    ++

  • signaler à un administrateur
    Commentaire de vecchio56 le 10/10/2004 12:22:45 administrateur CS

    Salut,

    Pour les en-têtes précompilés, c'est vrai que c'est interessant pour les gros projets, mais la on ne peut pas dire que cce soit vraiment le cas.

    wcex.lpszClassName = "FENETRES"; ce genre d'affectation se fait a la déclaration, sinon utiliser strcpy

    Pourquoitu utilises des new et delete, puisque tu as en heap?

  • signaler à un administrateur
    Commentaire de younessfatima le 10/10/2004 13:50:19

    hassan c youness je pense que les remarques données par les amis sont profitables.je te remercie pr l'exemple. Ms les amis un peu d'encouragemnet pr Hassan. :)

  • signaler à un administrateur
    Commentaire de boumarsel le 10/10/2004 14:53:30

    -reponse pour vacchio56: merci pour ta participation et tes conseils, generalement j'utilise les fonctions de heap pour les chaines qui sont longues ou demandent une reallocation frequente, et les fonctions standard comme "new" pour les chaines courtes. c'est pas juste comme methode?
    -reponse pour youness: merci mon ami.
    -reponse pour alexman: desolé, je perds pas mon temps à lire tes remarques et tes commentaires, l'autre weekend je t'ai ecris un long message pour t'expliquer beaucoup de choses, et critiquer un peu ta participation dans ce site. et par curiosité j'ai parti voir ton profile et j'ai jeté un coup d'oeil sur tes sources et tes reponses aux forums, et tout ce que j'ai fait après c'est effacer mn message sans te l'envoyer, et decider de te negliger.merci pour ta comprhension

  • signaler à un administrateur
    Commentaire de AlexMAN le 10/10/2004 14:58:31

    whaa, ca me met un coup serieux, ok je comprends, jsui dsl donc de ma participation au site.

    Aurevoir

  • signaler à un administrateur
    Commentaire de Gendal67 le 16/10/2004 08:58:18

    pffff, vous allez encore vous disputez comme ça longtemps ?? Vous etes tous des programmeurs! Nous sommes tous une unité alors aider vous et écouter vous mutuellement bon sang!!! N'agissez pas comme les trois quarts de gens débiles de ce monde!!
    ....allez, réconsillié vous! Entre parenthèse, moi aussi quand je met un commentaire, on me le "critique", mais ce n'est jamais une mauvaise critique c'est toujours pour essayer que je fasse mieux!! Faut pas s'enerver pour si peu bon sang....le potentiel de chacun est grand, et si on partage ce que l'on sait, on y ai tous gagnant ! :-))

    Voila, dsl, 'pouvais pas supporté de voir une querelle sur ce genre de site!! bisous a tous!! :-)

    Gendal67, a votre service !

  • signaler à un administrateur
    Commentaire de boumarsel le 16/10/2004 15:24:03

    tu as tout a fait raison gendal, moi et alexman, nous avons deja regle ce probleme par des messages en pive.
    je vois que vecchio n'a pas encore repondu a ma kestion...

  • signaler à un administrateur
    Commentaire de younessfatima le 17/10/2004 00:05:33

    Enfin on peut dire que tout le monde est satisfait. Le calme régne...buffffff....C cool.
    je veux juste poser une question concernant les BDs et VC++? Un tuto ou un exple?

  • signaler à un administrateur
    Commentaire de boumarsel le 17/10/2004 07:24:07

    vaut mieux poser ta kestion ds le forum, ca te permetra davoir + de reponses

  • signaler à un administrateur
    Commentaire de vecchio56 le 17/10/2004 16:37:34 administrateur CS

    Désolé j'avais pas vu qu'il y avait une question... En fait je ne sais pas vraiment, mais je pense qu'un new est en fait un HeapAlloc caché, donc autant appeler directement HeapAlloc. Dans tous les cas je pense que ce n'est pas très propre de mélanger des new et des HeapAlloc, de même qu'on ne mélange pas des new et des malloc

  • signaler à un administrateur
    Commentaire de boumarsel le 17/10/2004 17:10:16

    j'ai lu ds des articles en MSDN que les fonction standard d'allocation (ex:new ) sont plus rapide que les fonctions de heap, qui peuvent causer des problemes si on les appelle tres souvent.je te donnerai les  titres des articles +tard
    merci

  • signaler à un administrateur
    Commentaire de BruNews le 17/10/2004 18:03:41 administrateur CS

    new appelle HeapAlloc().
    On peut regrouper en 1 seul appel:
    char *p = new char[12];
    char *c = (char*) HeapAlloc(hHeap,0, len);

    peut devenir en + rapide:
    char *p, *c;
    char *p =  (char*) HeapAlloc(hHeap,0, len + 12);
    c = p + 12;
    // algo ici
    HeapFree(hHeap, 0, p);

  • signaler à un administrateur
    Commentaire de vecchio56 le 17/10/2004 18:32:24 administrateur CS

    char *p, *c;
    char *p =  (char*) HeapAlloc(hHeap,0, len + 12);
    c = p + 12;
    // algo ici
    HeapFree(hHeap, 0, p);

    erreur: p est déja défini dans cette portée!

  • signaler à un administrateur
    Commentaire de BruNews le 17/10/2004 18:34:01 administrateur CS

    enleve '*' en trop animal !!! si c'est tout ce que t'avais a corriger....

  • signaler à un administrateur
    Commentaire de boumarsel le 19/10/2004 22:56:17

    je pense que le code est juste sans aucune modification, en plus on peut allouer tout l'espace (len+12) pour 'p' ds des parties du code ou` on ne fait pas referance a` 'c' (et son contenu n'a pas d'importance), sinon on se limite a` la taille 12.
    merci

  • signaler à un administrateur
    Commentaire de BruNews le 19/10/2004 22:59:19 administrateur CS

    c'etait du au 'copier coller', fallait bien sur:

    char *p, *c;
    p =  (char*) HeapAlloc(hHeap,0, len + 12);
    c = p + 12;
    // algo ici
    HeapFree(hHeap, 0, p);

  • signaler à un administrateur
    Commentaire de boumarsel le 20/10/2004 18:36:26

    oui biensur, personnellement je peux pas ecrire un message juste pour signalier une telle erreur :)) 'te fache pas vecchio:)'...
    j'ai une autre question pour toi brunews,
    est ce qu'on peut nous servir des données de la structure MEMORY_BASIC_INFORMATION  (remplie par VirtualQueryEx) pour connaitre la taille de la memoire physique consommée par un processus?
    autrement dit est ce que les informations de la memoire virtuelle peuvent nous indiquer la taille de la memoire physique?
    je ne peux pas utiliser directement GetProcessMemoryInfo (de psapi.dll) parcequ'elle n'est inclue que ds winNT
    merci

  • signaler à un administrateur
    Commentaire de BruNews le 20/10/2004 18:48:48 administrateur CS

    Utilise GlobalMemoryStatus() pour connaitre la taille de la memoire physique. La valeur sera erronee si tu as un PC avec + de 4 Go de RAM.

  • signaler à un administrateur
    Commentaire de boumarsel le 20/10/2004 19:08:59

    ma kestion est :
    'est ce qu'on peut nous servir des données de la structure MEMORY_BASIC_INFORMATION  (remplie par VirtualQueryEx) pour connaitre la taille de la memoire physique consommée par un processus?'
    consommée par un seul processus (exemple: Vstudio.net environ 34Mo) et non pas la taille de la memoire physique du PC.
    merci

  • signaler à un administrateur
    Commentaire de BruNews le 20/10/2004 19:20:40 administrateur CS

    Cette structure sert a explorer ton espace d'adressage, faudraensuite interpreter les donnees.
    Regarde dans Richter, il y a des exemples entiers sur l'analyse de la memoire virtuelle.

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Boutique

Boutique de goodies CodeS-SourceS