Bipcpp - fenêtre,dialog,menu inter-actifs

Description

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 :


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.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.