Convertisseur euros win32 [devc++ 4.0] [c++]

Soyez le premier à donner votre avis sur cette source.

Vue 4 585 fois - Téléchargée 237 fois

Description

Simple convertisseur Euros-Francs avec un système le plus simple possible et pratique. Ou plutot, j'ai essayé lol.
On peut spécifier le nombre de chiffre après la virgule et puis voila.
J'espère que ça vous plaira. C'est mon 1er programme Windows et franchement je trouve que je l'ai pas trop mal reussis.
Il y a un fichier zip contenant les sources, le .exe et le screenshot. Le source est donné brut de commentaire mais celui du zip en ai remplis.
/!\ G modifié le titre. C'est du C++ bien sur, jamais en C il n'y a eu de variable de type BOOL. Autant pour moi /!\

Source / Exemple :


#define WIN32_LEAN_AND_MEAN

#include <windows.h>

#define IDBUTTON1    3
#define IDD_ABOUTBOX 4
#define IDTEXT       7
#define IDPOUET      9
#define IDICON       500
#define IDMENUA      20
#define IDMENUB      21
#define IDMENUC      22
#define IDMENUD      23

//int
int numberaftercomma = 2;
int editbox;
int conversion=1;

//float
float endvaleur, varpause;

//char
char buffer[27];

//HICON
HICON ico;

//------------------------- FIN DES VARIABLES -------------------------//

BOOL CALLBACK MainDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)   
{ 
 switch (msg)   
    {
     case WM_INITDIALOG:   
            ico = LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDICON));   
            SendMessage(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)ico);   
            SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)ico);
            SendMessage(hwndDlg, EM_LIMITTEXT, 30, 0);                       
            SendDlgItemMessage(hwndDlg, 9, EM_SETREADONLY, TRUE, 0L);        
            SendDlgItemMessage(hwndDlg,5,BM_SETCHECK,BST_CHECKED,0L);        
            SetDlgItemText(hwndDlg, 7, "1");                                 
            SetDlgItemText(hwndDlg, 9, "6.55957");                           
            break;
     case WM_CLOSE:                                                           
            DestroyWindow(hwndDlg);
            return 0;
            break;
     case WM_DESTROY:                                                        
            PostQuitMessage(0);
            return 0;
            break;                                                           
     case WM_COMMAND:                                                        
            switch (LOWORD(wParam)) 
            {
             case 5:                                                         
                   conversion=1;                                             
                   SendDlgItemMessage(hwndDlg,7,EM_SETREADONLY,FALSE,0L);       
                   SendDlgItemMessage(hwndDlg,6,BM_SETCHECK,BST_UNCHECKED,0L);  
                   SendDlgItemMessage(hwndDlg,9,EM_SETREADONLY,TRUE,0L);
                   SetDlgItemText(hwndDlg, 7, "1");
                   SetDlgItemText(hwndDlg, 9, "6.55957");                    
                   break;
             case 6:                                                         
                   conversion=2;                                             
                   SendDlgItemMessage(hwndDlg,5,BM_SETCHECK,BST_UNCHECKED,0L);  
                   SendDlgItemMessage(hwndDlg,7,EM_SETREADONLY,TRUE,0L);        
                   SendDlgItemMessage(hwndDlg,9,EM_SETREADONLY,FALSE,0L);       
                   SetDlgItemText(hwndDlg, 7, "6.55957");                    
                   SetDlgItemText(hwndDlg, 9, "1");                          
                   break;
             case 7:                                                          
                   if (conversion == 1)                                       
                   {                
                   GetDlgItemText(hwndDlg, IDTEXT, buffer, sizeof(buffer));   
                   sscanf(buffer, "%f", &varpause);                           
                   endvaleur = varpause * 6.55957;                            
                   switch (numberaftercomma)                                  
                     {
                      case 1:
                            sprintf(buffer,"%.1f",endvaleur);                 
                            break;
                      case 2:
                            sprintf(buffer,"%.2f",endvaleur);                 
                            break;
                      case 3:
                            sprintf(buffer,"%.3f",endvaleur);
                            break;
                     }
                   SetDlgItemText(hwndDlg,9,buffer);                          
                   }
                   break;
             case 9:
                   if (conversion == 2)                                       
                   {
                   GetDlgItemText(hwndDlg, IDPOUET, buffer, sizeof(buffer));  
                   sscanf(buffer, "%f", &varpause);
                   endvaleur = varpause / 6.55957;                            
                   switch (numberaftercomma)                                  
                     {
                      case 1:                                                 
                            sprintf(buffer,"%.1f",endvaleur);
                            break;                                            
                      case 2:
                            sprintf(buffer,"%.2f",endvaleur);                 
                            break;
                      case 3:                                                 
                            sprintf(buffer,"%.3f",endvaleur);
                            break;
                     }
                   SetDlgItemText(hwndDlg,7,buffer);
                   }
                   break;
             case 10:                                                        
                   PostQuitMessage(0);
                   break;
             case 11:                                                        
                   MessageBox(hwndDlg, "Copyright (c) Kephren 2002\n\nE-mail : hpz_dede@hotmail.com\n\nRemerciements : Groupes Google.com,\nGwenn, Jcecchi et les autres.\n\nJoin us at irc.free.fr : - #programmation\n                                 - #next\n                                 - #iut-world\n                                 - #westcoast", "A propos", MB_OK | MB_ICONINFORMATION);
                   break;
             case 20:                                                        
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUA, MF_CHECKED);     
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUB, MF_UNCHECKED);   
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUC, MF_UNCHECKED);   
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUD, MF_UNCHECKED);   
                   numberaftercomma = 1;                                     
                   break;
             case 21:
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUA, MF_UNCHECKED);   
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUB, MF_CHECKED);     
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUC, MF_UNCHECKED);   
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUD, MF_UNCHECKED);   
                   numberaftercomma = 2;                                     
                   break;
             case 22:
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUA, MF_UNCHECKED);   
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUB, MF_UNCHECKED);
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUC, MF_CHECKED);
                   CheckMenuItem(GetMenu(hwndDlg), IDMENUD, MF_UNCHECKED);
                   numberaftercomma = 3;
                   break;
            }
    break;
    }  return FALSE;                                                         
} 
HWND hDlg;   
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)   
{ 
 MSG msg;   
 hDlg = CreateDialog(hInstance, "IDD_ABOUTBOX", GetDesktopWindow(), (DLGPROC) MainDlgProc);   
 ShowWindow(hDlg, nCmdShow);   
 if(!hDlg)                     
     return FALSE; 
 while (GetMessage(&msg, (HWND) NULL, 0, 0))   
    { 
     TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    }

    return msg.wParam;
}

Conclusion :


Je mettrais surement à jour le prog. N'hésitais pas à me donner votre avis sinon le programme sert à rien hein. J'ai mis Niveau 1 je sais pas à quoi cela correspond. Aucun bug connus à mon actif. Mon site : http://www.kephren.fr.fm/

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
54
Date d'inscription
dimanche 25 novembre 2001
Statut
Membre
Dernière intervention
19 mai 2003

Pourquoi pas, après tout le système de base est le même :)
Messages postés
71
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
24 juin 2019

J'ai compilé tes sources avec Borlanc C++ 5.02, la seule chose que j'ai du faire, c'est ajouter #include <stdio> et changer les icônes pour que ça se compile. Avec tes sources je me suis fait un convertisseur de degré Fahrenheit et Celcius.
Messages postés
54
Date d'inscription
dimanche 25 novembre 2001
Statut
Membre
Dernière intervention
19 mai 2003

Envois de message depuis le site terminé. Il n'y a plus que le forum qui ne marche plus.
Messages postés
54
Date d'inscription
dimanche 25 novembre 2001
Statut
Membre
Dernière intervention
19 mai 2003

Je vois que y a des gens qui m'envoient des messages depuis mon site et en fait je viens de me rendre compte que le script utilisé ne marchait pas :( Je suis en train de réparer ça. (j'ai aussi vu que le forum ne marchait pas ouinnnn)
Donc envoyé les commentaires ici ou plus tard :)
Messages postés
54
Date d'inscription
dimanche 25 novembre 2001
Statut
Membre
Dernière intervention
19 mai 2003

Mais c'est moi qui te remercie :)
Afficher les 6 commentaires

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.