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 !

UNE BIBLIOTHÈQUE C++: CLASSES ET WINDOWS, MINI MFC


Information sur la source

Catégorie :API Niveau : Débutant Date de création : 20/01/2005 Date de mise à jour : 29/01/2005 02:14:55 Vu / téléchargé: 4 437 / 292

Note :
8,5 / 10 - par 4 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Cliquez pour voir la capture en taille normale
Cette petite collection de classes n'est pas faite pour rivaliser avec les MFC ou autres.
Elle permetra juste d'apréhender une fusion objet/handle pas très evidente mais plutôt pratique.

Ce code est léger est peu très bien servir à un petit programme ou même être le point de départ d'une plus grosse lib
 

Source

  • //pas de macro bien grasse pour la table des messages mais
  • //une fonction virtuelle qui est appeler lorsque l'objet est attaché à un handle.
  • void MaWnd::map_messages()
  • {
  • Wnd::map_messages();
  • connect_message(WM_MOUSEMOVE, (MSGPARAMSLOT) &MaWnd::onMouseMove);
  • connect_message(WM_LBUTTONUP, (MSGPARAMSLOT) &MaWnd::onLButtonUp);
  • connect_command(ON_FILE_EXIT, (CMDSLOT) &MaWnd::onFichierQuitter);
  • connect_message(WM_CLOSE, (MSGSLOT) &MaWnd::onClose);
  • connect_command(IDC_TEXT,EN_CHANGE, (CMDSLOT) &MaWnd::onTextChange);
  • connect_message(new SignalMouse(WM_LBUTTONDOWN, (MSGSLOT) &MaWnd::onLButtonDown));
  • }
//pas de macro bien grasse pour la table des messages mais 
//une fonction virtuelle qui est appeler lorsque l'objet est attaché à un handle.
void MaWnd::map_messages()
{
 Wnd::map_messages();
 connect_message(WM_MOUSEMOVE, (MSGPARAMSLOT) &MaWnd::onMouseMove);
 connect_message(WM_LBUTTONUP, (MSGPARAMSLOT) &MaWnd::onLButtonUp);
 connect_command(ON_FILE_EXIT, (CMDSLOT) &MaWnd::onFichierQuitter);
 connect_message(WM_CLOSE, (MSGSLOT) &MaWnd::onClose);
 connect_command(IDC_TEXT,EN_CHANGE, (CMDSLOT) &MaWnd::onTextChange);
 connect_message(new SignalMouse(WM_LBUTTONDOWN, (MSGSLOT) &MaWnd::onLButtonDown));
}

Conclusion

La lib est bourée de bug, mais elle peut faire tourner l'exemple :)
J'ai testé sous VC++ 6.0 et DevCpp 4.9.9.1: vous trouverez les fichiers de projets pour chacun
 

Fichier Zip

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

Historique

21 janvier 2005 15:55:54 :
Les SignalMessage sont maintenant divisés en 2: SignalMsg: MSGSLOT sans param ex: long MaWnd::onClose() SignalMsgParam: MSGPARAMSLOT avec param ex:long MaWnd::onMouseOver(WPARAM,LPARAM)
21 janvier 2005 17:16:29 :
Le programme se compile sans erreur sous DevCpp maintenant
24 janvier 2005 10:37:07 :
Quelques corrections et améliorations: * La classes Thread est exportée de la lib * Ajout du Signal utilisant les notifications via WM_COMMAND * Un nouvel exemple plus complet (comment ça déja vu??) * Ajout de fonctions membres à la classe Wnd.
29 janvier 2005 02:14:55 :
* A la demande général, vcp.bin n'est plus dans les resources mais ouvert par un filemapping. * mise à jour de connect_message qui devient bien plus poo, avec possibilite de personalisation des Signal... (merci les fonctions virtuelles!) merci encore - j'attend vos commentaires.

Commentaires et avis

signaler à un administrateur
Commentaire de cosmobob le 21/01/2005 01:07:51

salut,
ben j'ai rapidement vu, mais ca me semble super bien ce que t'as fait, alors la bravo !
tu dis que t'as lib est bourée de bug, en as tu repéré, ou c'est juste pour te prémunir qd quelqu'un va t'en signaler un?

a++ ;)

signaler à un administrateur
Commentaire de bayeto le 21/01/2005 14:30:48

Oui il y en a. Notamment au niveau des valeurs de retour des procédures de fenêtres (cf Wnd et Dialog)

Sinon merci à toi :)

signaler à un administrateur
Commentaire de mulder69 le 21/01/2005 15:33:56

ya kk'un ki peut m'expliquer rapidement ce k'est un handle?? suis debutant sous c++ (confirmé sous Vb) et ce terme reviens courament (ainsi ke thread d'ailleur lol)

merci

signaler à un administrateur
Commentaire de bayeto le 21/01/2005 16:09:30

l'api Windows nous founit des handles pour travailler.

une fenetre par exemple est reprenter par un handle de type HWND.

HWND hWnd = CreateWindowEx(...); //
DestroyWindow(hWnd);

un DC est un HDC.
HDC hdc = GetDC(hWnd);
ReleaseDC(hWnd,hdc);

pour faire court: un thread est une unite d'execution concurrente dans un processus; ca permet de faire plusieurs taches 'en meme temps' au sein d'un meme processus.

signaler à un administrateur
Commentaire de Kirua le 21/01/2005 22:10:21

DC = device context, c'est une zone mémoire dans laquelle tu peux dessiner, mais qui n'est pas forcément représentée à l'écran! L'écran est d'ailleurs un DC. L'avantage: tu peux travailler dans un DC caché, puis quand les calculs de dessin sont terminés, tu recopies le contenu du DC dans un DC affiché, et ça évite d'avoir le tracé en cours.

Un handle est en fait seulement un identifiant, un numéro attaché à un objet (une fenêtre, un bouton...). Quand un événement à lieu (par exemple, on click sur un bouton), le gestionnaire d'événements de l'API windows va préciser que l'événement est un click de bouton, et va passer le handle du bouton, c'est-à-dire son identifiant unique, ce qui nous permet de le repérer, et de savoir QUEL bouton a été clické.

Un thread est en effet une tâche. Plusieurs threads peuvent être exécutés en parallèle (en même temps), ce qui est avantageux si tu veux par exemple pouvoir effectuer un long calcul, tout en permettant à l'utilisateur d'appuyer sur un bouton "annuler" par exemple, ou bien de lancer deux longs calculs en même temps etc...

signaler à un administrateur
Commentaire de Alpacha le 22/01/2005 07:29:48

Pas mal...
Fais une recherche sur "MX Class" c'est une lib similaire à la tienne elle devrait t'inspirer.
Alp

signaler à un administrateur
Commentaire de Alcantornet le 05/04/2005 14:44:08

Super ta lib !!! Mais pourquoi tu la appelé wasistdas, en allemand was ist das signifie : c'est quoi.

Mais sinon... rien à dire (enfin un truc que je comprends pour faire des interface graphique)

Bravo !!!

signaler à un administrateur
Commentaire de bayeto le 05/04/2005 18:43:51

Aber ja, mais un wasistdas c'est une fenetreuh.

signaler à un administrateur
Commentaire de Kirua le 09/04/2005 12:53:42

mdr bayeto, c'est génial ce nom :) bravo, j'avais pas compris ^^.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.