bonjour,
je suis en DUT 2e année ... je dois réaliser un projet pr la mi-mars ;

:
realisation d'un logiciel de transcodage anglais/arabe ...
voila j'ai commencé a me remettre au langage C , d'ailleurs je me dit que j'aurais bien fait 'écouter un peu plus en cours ^^ ...
Donc si quelqun a déja réalisé ce type de projet ou si vous avez un code source d'un logiciel proche qui pourrait m'aider , merci de me faire signe

pour ma part je suis chargé de l'interface graphique.
j'utilise WinApi mais je n'arrive pas a intégrer une zone de texte !!!!
voila ou j'en suis :
#include <windows.h>
#include <stdio.h>
#define ID_B_TRADUIRE 0
#define ID_B_QUITTER 1
#define ID_B_TEST 2
#define ID_ANGAR 3
#define ID_ARANG 4
HINSTANCE instance;
LRESULT CALLBACK procedureFenetrePrincipale(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE cetteInstance, HINSTANCE precedenteInstance,
LPSTR lignesDeCommande, int modeDAffichage)
{
HWND fenetrePrincipale;
WNDCLASS classeFenetre;
//Variables de la fonction principale
MSG msg;
instance = cetteInstance;
// Structure de la classe de la fenêtre principale
classeFenetre.style = 0;
classeFenetre.lpfnWndProc = procedureFenetrePrincipale;
classeFenetre.cbClsExtra = 0;
classeFenetre.cbWndExtra = 0;
classeFenetre.hInstance = NULL;
classeFenetre.hIcon = LoadIcon(NULL, IDI_APPLICATION);
classeFenetre.hCursor = LoadCursor(NULL, IDC_ARROW);
classeFenetre.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
classeFenetre.lpszMenuName = NULL;
classeFenetre.lpszClassName = "classeF";
// On prévoit quand même le cas où ça échoue
if(!RegisterClass(&classeFenetre)) return FALSE;
fenetrePrincipale = CreateWindow("classeF", "Transcodage arabe anglais", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
NULL, NULL, cetteInstance, NULL);
if (!fenetrePrincipale) return FALSE;
ShowWindow(fenetrePrincipale, modeDAffichage);
UpdateWindow(fenetrePrincipale);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
//variables globales
HINSTANCE cetteInstance;
HWND hEdit[1]; //handle des deux contrôles d'édition
//Afficher un contrôle d'édition d'une ligne
HWND afficheEditUneLigne (HWND fenetrePrincipale)
{
HWND hEdit=CreateWindow(
"EDIT",
"Modifiez le texte SVP",
WS_VISIBLE|WS_CHILD|WS_BORDER|ES_CENTER ,
30, 80, 383, 30,fenetrePrincipale,NULL,instance,NULL);
return hEdit;
}
//Traitement des messages
void msgCtl(HWND fenetrePrincipale,UINT msg, WPARAM wParam, LPARAM lParam)
{
UINT motBas = LOWORD(wParam);
HWND hCtl= (HWND) lParam;
int nombreLignes=0;
char lignes[70]={0},nLignes[5]={0};
}
//Traitement des notifications
void NotificationControle(HWND fenetrePrincipale,UINT msg, WPARAM wParam, LPARAM lParam)
{
UINT motHaut= HIWORD(wParam);
HWND hCtl= (HWND) lParam;
switch(motHaut)
{
//Notification EN_CHANGE envoyée par le contrôle
case EN_CHANGE:
if (hCtl == hEdit[0])
{
MessageBox(fenetrePrincipale,"Vous avez modifié le texte d'une contrôle à une ligne !!","",MB_OK);
}
break;
case BN_CLICKED: // cliquer sur un des boutons pour analyser les messages
msgCtl((HWND)fenetrePrincipale,(UINT)msg,(WPARAM)wParam,(LPARAM)lParam);
break;
}
}
LRESULT CALLBACK Procedure (HWND fenetrePrincipale, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
//afficher les contrôles d'édition à la réception du message WM_CREATE
case WM_CREATE:
hEdit[0]=afficheEditUneLigne (fenetrePrincipale);
default:
return DefWindowProc(fenetrePrincipale, msg, wParam, lParam);
}
}
LRESULT CALLBACK procedureFenetrePrincipale(HWND fenetrePrincipale, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HWND boutons[5] = {NULL};
switch (msg)
{
case WM_CREATE:
boutons[0] = CreateWindow("BUTTON", "Traduire", WS_CHILD | WS_VISIBLE,
5, 145, 383, 30, fenetrePrincipale, (HMENU)ID_B_TRADUIRE, instance, NULL);
boutons[1] = CreateWindow("BUTTON", "Quitter", WS_CHILD | WS_VISIBLE,
5, 185, 383, 30, fenetrePrincipale, (HMENU)ID_B_QUITTER, instance, NULL);
HWND hGroup = CreateWindow("BUTTON","*** Votre Choix : ***",WS_CHILD|WS_VISIBLE|BS_GROUPBOX,
10,5,383,60,fenetrePrincipale,NULL,instance,NULL);
{
HWND hControle;
hControle = CreateWindow("BUTTON","anglais/arabe",WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,
20,25,120,30,fenetrePrincipale,(HMENU)ID_ANGAR,instance,NULL);
hControle = CreateWindow("BUTTON","arabe/anglais",WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,
260,25,120,30,fenetrePrincipale,(HMENU)ID_ARANG,instance,NULL);
return 0;
}
case WM_COMMAND:
switch(LOWORD(wParam))
{
case ID_B_TRADUIRE:
MessageBox(fenetrePrincipale, "Il n'y a rien à traduire", "Bonjour.", MB_ICONINFORMATION);
break;
case ID_B_QUITTER:
SendMessage(fenetrePrincipale, WM_DESTROY, 0, 0);
break;
case ID_B_TEST:
SendMessage(fenetrePrincipale, WM_DESTROY, 0, 0);
break;
}
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(fenetrePrincipale, msg, wParam, lParam);
}
}
merci de votre aide