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

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

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.