Salut je me suis lancer dans le projet de faire un petit logiciel permettant la conversion de fichier .avi en .mp4....
J'ai commancé a faire l'interface alors j'ai creer la fenêtre 2 push-boutton et j'ai fait des menus mais apres j'ai voulu inserer une image et faire une check-box automatique a 2 choix mais il a trouver des erreurs pendant la compilation que je n'arrive pas a resoudre (elles sont detaillé plus bas)
Voici mon code:
#include <windows.h>
#define ID_B_PARLER 0
#define ID_B_QUITTER 1
HINSTANCE instance;
#define ID_CHECKBOX_1
HWND hControle;
// une check box automatique deux états
hControle=CreateWindow(
"BUTTON",
"Check box 1",
WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,
130+10,10+20,
100,20,
fenetrePrincipale,
(HMENU)ID_CHECKBOX_1,
instance,
NULL);
LRESULT CALLBACK procedureFenetrePrincipale(HWND, UINT, WPARAM, LPARAM);
int WinMain (HINSTANCE cetteInstance, HINSTANCE precedenteInstance,
LPSTR lignesDeCommande, int modeDAffichage)
{
HWND fenetrePrincipale;
MSG message;
WNDCLASS classeFenetre;
HMENU menu, sousMenu;
instance = cetteInstance;
sousMenu = CreateMenu();
AppendMenu(sousMenu,MF_STRING, ID_B_PARLER, "Convertir");
AppendMenu(sousMenu,MF_SEPARATOR, (UINT)NULL, "");
AppendMenu(sousMenu,MF_STRING,ID_B_QUITTER,"Quitter");
menu = CreateMenu();
AppendMenu(menu, MF_POPUP, (UINT)sousMenu, "Actions");
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", "MP4 Heart Convert ::: Interface de conversion", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, menu /* Ou LoadMenu(instance, "ID_MENU")*/, cetteInstance, NULL);
if (!fenetrePrincipale) return FALSE;
ShowWindow(fenetrePrincipale, modeDAffichage);
UpdateWindow(fenetrePrincipale);
while (GetMessage(&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return message.wParam;
}
LRESULT CALLBACK procedureFenetrePrincipale(HWND fenetrePrincipale, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND boutons[2] = {NULL};
switch (message)
{
case WM_CREATE:
boutons[0] = CreateWindow("BUTTON", "Convertir", WS_CHILD | WS_VISIBLE,
290, 480, 100, 30, fenetrePrincipale, (HMENU)ID_B_PARLER, instance, NULL);
boutons[1] = CreateWindow("BUTTON", "Quitter", WS_CHILD | WS_VISIBLE,
400, 480, 100, 30, fenetrePrincipale, (HMENU)ID_B_QUITTER, instance, NULL);
return 0;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case ID_B_PARLER:
MessageBox(fenetrePrincipale, "Initialisation du procesus de convertion ; ouverture de la console", "Succès.", MB_ICONINFORMATION);
break;
case ID_B_QUITTER:
SendMessage(fenetrePrincipale, WM_DESTROY, 0, 0);
break;
}
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(fenetrePrincipale, message, wParam, lParam);
}
}
void afficheBitmap(HWND fenetreCiblee, char *chemin)
{
HBITMAP bitmap;
HDC hDC;
//Chargement du bitmap
hDC=GetDC(fenetreCiblee);
//Affichage du bitmap
DeleteObject(bitmap);
ReleaseDC(fenetreCiblee,hDC);
}
HANDLE LoadImage(
HINSTANCE hinst,
LPCTSTR lpszName,
UINT uType,
int cxDesired,
int cyDesired,
UINT fuLoad
);
case WM_PAINT :
{
HBITMAP bitmap;
HDC dc;
PAINTSTRUCT ps;
bitmap=LoadImage(NULL,"entete.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
dc = BeginPaint(fenetrePrincipale, &ps);
DrawState(dc,NULL,NULL,(long)bitmap,NULL,0,0,800,200,DST_BITMAP);
EndPaint(fenetrePrincipale, &ps);
DeleteObject(bitmap);
return 0;
}
Voici le code de ressource.rc
Et voici les erreurs qu'y detecte:
A la ligne 12:
exepected constructor destructor or type conversion before "=" token
Toujours a la ligne 12:
expected ";" or "," before "=" token
A la ligne 130:
expected unqualified-id before "case"
Toujours a la ligne 130:
expected "," or ";" before "case"