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 !

BIPCPP - FENÊTRE,DIALOG,MENU INTER-ACTIFS


Information sur la source

Catégorie :Système Niveau : Initié Date de création : 17/04/2005 Date de mise à jour : 17/04/2005 22:12:40 Vu / téléchargé: 3 400 / 353

Note :
Aucune note

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

Description

Cliquez pour voir la capture en taille normale
BipCPP est un projet open source qui a pour but de simplifier la programmation sous windows. Il contient des fonctions pour gérer les fenêtres, les formulaires (dialogbox), les menus ... Il est développé en C++, api32 et STL.

Une grosse mise à jour de BipCPP.
Gestion simplifié des formulaires (DialogBox) et des menus avec plein de paramètres (voir le source).
Au menu :
- menu dynamique et inter-actif
- formulaire modal ou non, dynamique et inter-actif
- champs static, bouton, edit, checkbox, ... (ownerdraw pour certain)
- nombreux attributs des champs (couleur du texte, du fond, bordure, activé, visible, police, ...)
- gestion automatique des champs obligatoire (not null)
- gestion automatique des champs date et nombre (avec format en entrée et sortie)
- interception des messages système (+ajout du message "champ modifié")
- touche entrée pour passer au champ suivant (comme la touche tab)
- ...
- tout cela dans des formulaires dynamique (les champs sont créés lors de l'ouverture du formulaire)
- les champs des formulaires sont dynamiques (les attributs sont modifiables en temps réel par programmation)

 

Source

  • Exemple de code pour afficher le formulaire nommé "STATIC" qui est visible dans la capture d'écran :
  • - création des champs avec BG_FormItemAdd
  • - création du formulaire avec BG_FormCreate
  • //-------------------------------------------------------------
  • //! Affichage du formulaire Static !
  • //-------------------------------------------------------------
  • void Form_Static (void)
  • {
  • int iItem;
  • int iError;
  • // initialisation numero de l'item
  • iItem = 1;
  • // création du titre
  • iError = BG_FormItemAdd ("static", "titre", BG_ITEM_STATIC, iItem++, 50, 10, 600, 40,
  • "value=Démonstrateur Formulaire BipGDI (static);txhpos=center;txvpos=center;ftname=Arial;ftsize=16;ftbold=true;brdsize=1;brdcol=blue");
  • iError = BG_FormItemAdd ("static", "rectangle1", BG_ITEM_RECT, iItem++, 50, 60, 600, 370,
  • "brdsize=1;brdstyle=3DOUT");
  • iError = BG_FormItemAdd ("static", "static1", BG_ITEM_STATIC, iItem++, 140, 65, 400, 50,
  • "value=Exemple de champ static;brdsize=1;bkcol=white;ftname=Arial;ftsize=10");
  • iError = BG_FormItemAdd ("static", "police", BG_ITEM_STATIC, iItem++, 60, 120, 180, 25,
  • "value=Police;txvpos=center");
  • iError = BG_FormItemAdd ("static", "cbpolice", BG_ITEM_COMBOSYS, iItem++, 180, 120, 160, 100,
  • "value1=Arial;value2=Courier New;value3=Times New Roman;remark=Police du champ STATIC");
  • iError = BG_FormItemAdd ("static", "taille", BG_ITEM_STATIC, iItem++, 360, 120, 130, 25,
  • "value=Taille;txvpos=center");
  • iError = BG_FormItemAdd ("static", "cbtaille", BG_ITEM_COMBOSYS, iItem++, 500, 120, 50, 100,
  • "value1=10;value2=6;value3=8;value4=12;value5=14;value6=18;value7=24;value8=36;value9=72;remark=Taille de la police de caractère");
  • iError = BG_FormItemAdd ("static", "grastexte", BG_ITEM_STATIC, iItem++, 60, 150, 180, 25,
  • "value=Gras;txvpos=center");
  • iError = BG_FormItemAdd ("static", "gras", BG_ITEM_CHECKSYS, iItem++, 180, 155, 100, 100,
  • "remark=Validez pour mettre le texte en gras");
  • iError = BG_FormItemAdd ("static", "italiquetexte", BG_ITEM_STATIC, iItem++, 260, 150, 180, 25,
  • "value=Italique;txvpos=center");
  • iError = BG_FormItemAdd ("static", "italique", BG_ITEM_CHECKSYS, iItem++, 340, 155, 100, 100,
  • "remark=Validez pour mettre le texte en italique");
  • iError = BG_FormItemAdd ("static", "soulignetexte", BG_ITEM_STATIC, iItem++, 460, 150, 180, 25,
  • "value=Souligné;txvpos=center");
  • iError = BG_FormItemAdd ("static", "souligne", BG_ITEM_CHECKSYS, iItem++, 540, 155, 100, 100,
  • "remark=Validez pour mettre le texte en souligné");
  • iError = BG_FormItemAdd ("static", "couleurtexte", BG_ITEM_STATIC, iItem++, 60, 180, 180, 25,
  • "value=Couleur du texte;txvpos=center;txcol=blue");
  • iError = BG_FormItemAdd ("static", "cbcouleurtexte", BG_ITEM_COMBOSYS, iItem++, 180, 180, 100, 100,
  • "value1=BLACK;value2=WHITE;value3=RED;value4=BLUE;value5=GREEN;value6=YELLOW;value7=MAGENTA;value8=CYAN;value9=MAGENTA;value10=LIGHTGREY;value11=DARKGREY;remark=Couleur du texte du champ STATIC");
  • iError = BG_FormItemAdd ("static", "couleurfond", BG_ITEM_STATIC, iItem++, 360, 180, 130, 25,
  • "value=Couleur du fond;txvpos=center;txcol=white;bkcol=grey");
  • iError = BG_FormItemAdd ("static", "cbcouleurfond", BG_ITEM_COMBOSYS, iItem++, 500, 180, 100, 100,
  • "value1=WHITE;value2=BLACK;value3=RED;value4=BLUE;value5=GREEN;value6=YELLOW;value7=MAGENTA;value8=CYAN;value9=MAGENTA;value10=LIGHTGREY;value11=GREY;value12=DARKGREY;value13=-1;remark=Couleur du fond du champ STATIC");
  • iError = BG_FormItemAdd ("static", "horizalign", BG_ITEM_STATIC, iItem++, 60, 210, 130, 25,
  • "value=Alignement horiz.;txvpos=center");
  • iError = BG_FormItemAdd ("static", "cbhorizalign", BG_ITEM_COMBOSYS, iItem++, 180, 210, 100, 100,
  • "value1=LEFT;value2=CENTER;value3=RIGHT;remark=Alignement horizontal du texte du champ STATIC");
  • iError = BG_FormItemAdd ("static", "verticalign", BG_ITEM_STATIC, iItem++, 360, 210, 130, 25,
  • "value=Alignement vertic.;txvpos=center");
  • iError = BG_FormItemAdd ("static", "cbverticalign", BG_ITEM_COMBOSYS, iItem++, 500, 210, 100, 100,
  • "value1=TOP;value2=CENTER;value3=BOTTOM;remark=Alignement vertical du texte du champ STATIC");
  • iError = BG_FormItemAdd ("static", "taillebrd", BG_ITEM_STATIC, iItem++, 60, 240, 180, 25,
  • "value=Taille bordure;txvpos=center");
  • iError = BG_FormItemAdd ("static", "cbtaillebrd", BG_ITEM_COMBOSYS, iItem++, 180, 240, 50, 100,
  • "value1=1;value2=0;value3=2;value4=3;value5=4;value6=5;value7=6;value8=8;value9=10;value10=12;value11=16;remark=Taille de la bordure");
  • iError = BG_FormItemAdd ("static", "couleurbrd", BG_ITEM_STATIC, iItem++, 360, 240, 130, 25,
  • "value=Couleur bordure;txvpos=center");
  • iError = BG_FormItemAdd ("static", "cbcouleurbrd", BG_ITEM_COMBOSYS, iItem++, 500, 240, 100, 100,
  • "value1=BLACK;value2=WHITE;value3=RED;value4=BLUE;value5=GREEN;value6=YELLOW;value7=MAGENTA;value8=CYAN;value9=MAGENTA;value10=LIGHTGREY;value11=DARKGREY;remark=Couleur de la bordure");
  • iError = BG_FormItemAdd ("static", "stylebrd", BG_ITEM_STATIC, iItem++, 60, 270, 130, 25,
  • "value=Style bordure;txvpos=center");
  • iError = BG_FormItemAdd ("static", "cbstylebrd", BG_ITEM_COMBOSYS, iItem++, 180, 270, 100, 100,
  • "value1=SOLID;value2=3DOUT;value3=3DIN;remark=Style de la bordure");
  • // création d'un champ de saisie simple et de son texte
  • iError = BG_FormItemAdd ("static", "textetexte", BG_ITEM_STATIC, iItem++, 60, 360, 180, 25,
  • "value=Texte du static :;txvpos=center");
  • iError = BG_FormItemAdd ("static", "texte", BG_ITEM_EDIT, iItem++, 180, 360, 400, 25,
  • "value=Exemple de champ static;remark=Texte affiché dans le static");
  • // bouton FERMER
  • iError = BG_FormItemAdd ("static", "fermer", BG_ITEM_BUTTON, iItem++, 280, 440, 100, 30,
  • "button=ok;value=Fermer;txcol=white;bkcol=red;remark=Ferme le formulaire");
  • // affichage du formulaire
  • iError = BG_FormCreate ("static", "modal=true;bkcol=lightgrey", 10, 10, 700, 500, Form_Static_Proc);
  • // fermeture du formulaire
  • iError = BG_FormClose ("static");
  • }
Exemple de code pour afficher le formulaire nommé "STATIC" qui est visible dans la capture d'écran :
- création des champs avec BG_FormItemAdd
- création du formulaire avec BG_FormCreate

//-------------------------------------------------------------
//!        Affichage du formulaire Static                     !
//-------------------------------------------------------------
void Form_Static (void)
{
	int iItem;
	int iError;

	// initialisation numero de l'item
	iItem = 1;

	// création du titre
	iError = BG_FormItemAdd ("static", "titre", BG_ITEM_STATIC, iItem++, 50, 10, 600, 40,
				"value=Démonstrateur Formulaire BipGDI (static);txhpos=center;txvpos=center;ftname=Arial;ftsize=16;ftbold=true;brdsize=1;brdcol=blue");
	iError = BG_FormItemAdd ("static", "rectangle1", BG_ITEM_RECT, iItem++, 50, 60, 600, 370,
				"brdsize=1;brdstyle=3DOUT");


	iError = BG_FormItemAdd ("static", "static1", BG_ITEM_STATIC, iItem++, 140, 65, 400, 50,
				"value=Exemple de champ static;brdsize=1;bkcol=white;ftname=Arial;ftsize=10");

	iError = BG_FormItemAdd ("static", "police", BG_ITEM_STATIC, iItem++, 60, 120, 180, 25,
				"value=Police;txvpos=center");
	iError = BG_FormItemAdd ("static", "cbpolice", BG_ITEM_COMBOSYS, iItem++, 180, 120, 160, 100,
				"value1=Arial;value2=Courier New;value3=Times New Roman;remark=Police du champ STATIC");

	iError = BG_FormItemAdd ("static", "taille", BG_ITEM_STATIC, iItem++, 360, 120, 130, 25,
				"value=Taille;txvpos=center");
	iError = BG_FormItemAdd ("static", "cbtaille", BG_ITEM_COMBOSYS, iItem++, 500, 120, 50, 100,
				"value1=10;value2=6;value3=8;value4=12;value5=14;value6=18;value7=24;value8=36;value9=72;remark=Taille de la police de caractère");

	iError = BG_FormItemAdd ("static", "grastexte", BG_ITEM_STATIC, iItem++, 60, 150, 180, 25,
				"value=Gras;txvpos=center");
	iError = BG_FormItemAdd ("static", "gras", BG_ITEM_CHECKSYS, iItem++, 180, 155, 100, 100,
				"remark=Validez pour mettre le texte en gras");

	iError = BG_FormItemAdd ("static", "italiquetexte", BG_ITEM_STATIC, iItem++, 260, 150, 180, 25,
				"value=Italique;txvpos=center");
	iError = BG_FormItemAdd ("static", "italique", BG_ITEM_CHECKSYS, iItem++, 340, 155, 100, 100,
				"remark=Validez pour mettre le texte en italique");

	iError = BG_FormItemAdd ("static", "soulignetexte", BG_ITEM_STATIC, iItem++, 460, 150, 180, 25,
				"value=Souligné;txvpos=center");
	iError = BG_FormItemAdd ("static", "souligne", BG_ITEM_CHECKSYS, iItem++, 540, 155, 100, 100,
				"remark=Validez pour mettre le texte en souligné");

	iError = BG_FormItemAdd ("static", "couleurtexte", BG_ITEM_STATIC, iItem++, 60, 180, 180, 25,
				"value=Couleur du texte;txvpos=center;txcol=blue");
	iError = BG_FormItemAdd ("static", "cbcouleurtexte", BG_ITEM_COMBOSYS, iItem++, 180, 180, 100, 100,
				"value1=BLACK;value2=WHITE;value3=RED;value4=BLUE;value5=GREEN;value6=YELLOW;value7=MAGENTA;value8=CYAN;value9=MAGENTA;value10=LIGHTGREY;value11=DARKGREY;remark=Couleur du texte du champ STATIC");

	iError = BG_FormItemAdd ("static", "couleurfond", BG_ITEM_STATIC, iItem++, 360, 180, 130, 25,
				"value=Couleur du fond;txvpos=center;txcol=white;bkcol=grey");
	iError = BG_FormItemAdd ("static", "cbcouleurfond", BG_ITEM_COMBOSYS, iItem++, 500, 180, 100, 100,
				"value1=WHITE;value2=BLACK;value3=RED;value4=BLUE;value5=GREEN;value6=YELLOW;value7=MAGENTA;value8=CYAN;value9=MAGENTA;value10=LIGHTGREY;value11=GREY;value12=DARKGREY;value13=-1;remark=Couleur du fond du champ STATIC");

	iError = BG_FormItemAdd ("static", "horizalign", BG_ITEM_STATIC, iItem++, 60, 210, 130, 25,
				"value=Alignement horiz.;txvpos=center");
	iError = BG_FormItemAdd ("static", "cbhorizalign", BG_ITEM_COMBOSYS, iItem++, 180, 210, 100, 100,
				"value1=LEFT;value2=CENTER;value3=RIGHT;remark=Alignement horizontal du texte du champ STATIC");

	iError = BG_FormItemAdd ("static", "verticalign", BG_ITEM_STATIC, iItem++, 360, 210, 130, 25,
				"value=Alignement vertic.;txvpos=center");
	iError = BG_FormItemAdd ("static", "cbverticalign", BG_ITEM_COMBOSYS, iItem++, 500, 210, 100, 100,
				"value1=TOP;value2=CENTER;value3=BOTTOM;remark=Alignement vertical du texte du champ STATIC");

	iError = BG_FormItemAdd ("static", "taillebrd", BG_ITEM_STATIC, iItem++, 60, 240, 180, 25,
				"value=Taille bordure;txvpos=center");
	iError = BG_FormItemAdd ("static", "cbtaillebrd", BG_ITEM_COMBOSYS, iItem++, 180, 240, 50, 100,
				"value1=1;value2=0;value3=2;value4=3;value5=4;value6=5;value7=6;value8=8;value9=10;value10=12;value11=16;remark=Taille de la bordure");

	iError = BG_FormItemAdd ("static", "couleurbrd", BG_ITEM_STATIC, iItem++, 360, 240, 130, 25,
				"value=Couleur bordure;txvpos=center");
	iError = BG_FormItemAdd ("static", "cbcouleurbrd", BG_ITEM_COMBOSYS, iItem++, 500, 240, 100, 100,
				"value1=BLACK;value2=WHITE;value3=RED;value4=BLUE;value5=GREEN;value6=YELLOW;value7=MAGENTA;value8=CYAN;value9=MAGENTA;value10=LIGHTGREY;value11=DARKGREY;remark=Couleur de la bordure");

	iError = BG_FormItemAdd ("static", "stylebrd", BG_ITEM_STATIC, iItem++, 60, 270, 130, 25,
				"value=Style bordure;txvpos=center");
	iError = BG_FormItemAdd ("static", "cbstylebrd", BG_ITEM_COMBOSYS, iItem++, 180, 270, 100, 100,
				"value1=SOLID;value2=3DOUT;value3=3DIN;remark=Style de la bordure");

	// création d'un champ de saisie simple et de son texte
	iError = BG_FormItemAdd ("static", "textetexte", BG_ITEM_STATIC, iItem++, 60, 360, 180, 25,
				"value=Texte du static :;txvpos=center");
	iError = BG_FormItemAdd ("static", "texte", BG_ITEM_EDIT, iItem++, 180, 360, 400, 25, 
				"value=Exemple de champ static;remark=Texte affiché dans le static");


	// bouton FERMER
	iError = BG_FormItemAdd ("static", "fermer", BG_ITEM_BUTTON, iItem++, 280, 440, 100, 30,
				"button=ok;value=Fermer;txcol=white;bkcol=red;remark=Ferme le formulaire");

	// affichage du formulaire
	iError = BG_FormCreate ("static", "modal=true;bkcol=lightgrey", 10, 10, 700, 500, Form_Static_Proc);

	// fermeture du formulaire
	iError = BG_FormClose ("static");

}

Conclusion

Les commentaires, remarques et aide sont les bienvenus.

Les sources et exe montrés dans la capture d'écran sont ici :
- mini-calculatrice : http://bipcpp.free.fr/fr/bipgdi/BipCalc-v100.zip
- démonstrateur de formulaire : http://bipcpp.free.fr/fr/bipgdi/demoform-v100.zip
- démonstrateur de menu : http://bipcpp.free.fr/fr/bipgdi/demomenu-v100.zip

La documentation de toutes les fonctions est disponible sur mon site Web.
 

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

17 avril 2005 22:05:30 :
ajout de commentaires.
17 avril 2005 22:12:40 :
lien vers la documentation.

Commentaires et avis

signaler à un administrateur
Commentaire de Cyberboy2054 le 19/04/2005 18:27:56

O_O
C'est impressionnant a quel point la programmation Win32 devient facile, tout l'aspect initialisation/autres trucs lourds disparaissent pour laisser juste la gestion du programme...
Bon comme d'hab on pourrait reprocher la non portabilité de la chose, mais je trouve que c'est quand même vraiment bien. Et pour beaucoup de developpeurs, ca permet de coder une interface en qques lignes sans avoir a ajouter de .lib ou de dll qui emmerdent toujours tout le monde.
Bref.... Bravo.

signaler à un administrateur
Commentaire de bipcpp le 19/04/2005 22:56:06

>> C'est impressionnant a quel point la programmation Win32 devient facile

C'est bien le but de ce projet, passer plus de temps sur le code et moins sur les dialogs.


>>on pourrait reprocher la non portabilité de la chose

S'il y a des volontaires pour aider au portage sur Linux, je suis preneur.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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,25 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é.