Accueil > Forum > > > > terminer un processus
terminer un processus
mardi 26 juillet 2005 à 19:09:01 |
terminer un processus

kyript
|
bonjour a tous
voila mon probleme
quand je ferme mon programme, le processus ne se termine pas
voila le code
case SC_CLOSE : // cas d'un click sur la croix de fermeture
{
int quit = 0;
quit = MessageBox(hWnd,"Vous voulez réellement Quitter",
szClassName,MB_YESNO|MB_ICONQUESTION);
if (quit == IDNO) {return 0; break;}
SendMessage( hWnd, WM_CLOSE, 0, 0);
break;
}
...
...
case WM_CLOSE:
{
DestroyMenu(hMenu);
DestroyWindow( hWnd );
break;
}
case WM_DESTROY:
{
PostQuitMessage (0); // (Voir partie 1)
break;
}
|
|
mardi 26 juillet 2005 à 20:40:23 |
Re : terminer un processus

vecchio56
|
WM_CLOSE, et SC_CLOSE sont-ils suivis d'un DefWindowProc à la fin du switch?
|
|
mardi 26 juillet 2005 à 20:42:44 |
Re : terminer un processus

kyript
|
oui voila tout le code
case WM_SYSCOMMAND :
{
switch (wParam)
{
case SC_CLOSE : // cas d'un click sur la croix de fermeture
{
int quit = 0;
quit = MessageBox(hWnd,"Vous voulez réellement Quitter",
szClassName,MB_YESNO|MB_ICONQUESTION);
if (quit == IDNO) {return 0; break;}
SendMessage( hWnd, WM_CLOSE, 0, 0);
break;
} // fin case SC_CLOSE
default : // on renvoie tous les autres messages système à
// windows selon la procédure normale.
{return DefWindowProc (hWnd, messages, wParam, lParam);break;}
}// fin switch (wParam)
break;
}
case WM_CLOSE: // -------------------------------------------------------
{
DestroyMenu(hMenu);
DestroyWindow( hWnd );
break;
} // fin case WM_CLOSE --------------------------------------------------
case WM_DESTROY:
{
PostQuitMessage (0); // (Voir partie 1)
break;
} // fin case WM_DESTROY ----------------------------------------------
default: // (Voir partie 1)
return DefWindowProc (hWnd, messages, wParam, lParam);
break;
} //fin de switch
|
|
mardi 26 juillet 2005 à 21:04:13 |
Re : terminer un processus

vecchio56
|
Quand tu recois WM_CLOSE, tu dois appeler DefWindowproc, sinon WM_DESTROY ne sera pas recu. Ou plus simplement, tu mets un PostQuitMessage dans le WM_CLOSE
|
|
mardi 26 juillet 2005 à 21:11:19 |
Re : terminer un processus

kyript
|
comment ca ?
j'ai mis PostQuitMessage(0)
dans WM_CLOSE
et tjrs pareille , le processus ne se coupe pas
|
|
mardi 26 juillet 2005 à 21:16:54 |
Re : terminer un processus

vecchio56
|
Oui, en plus j'avais pas vu mais t'a mis un DestroyWindow donc WM_DESTROY sera bien recu
Ca vient peut être de ta boucle de messages, comment est-elle?
Sinon tu peux essayer de mettre une ExitProcess(0) à la fin de ton prog, mais normalement c'est pas nécessaire
|
|
mardi 26 juillet 2005 à 23:33:01 |
Re : terminer un processus

kyript
|
bon je te laisse tou le programme car la je suis un peu perdu
car sur un programme que j'ai dans le meme style ben le processus ce ferme bien
voila le code
LRESULT CALLBACK WindowProc(HWND hWnd, UINT messages, WPARAM wParam, LPARAM lParam)
{
HDC hDc; //handle sur le device context
RECT rc; // on créer un objert de la structure rect;
PAINTSTRUCT ps; // On Déclare un objet de structure PAINTSTRUCT, qui va nous servir
// à contenir les informations pour l'écriture dans le
// contexte d'affichage.
switch (messages)
{
case WM_CREATE:
{
hCouleur = CreateSolidBrush(RGB(255,255,255)); // blanc
Police = "Arial";
break;
}
case WM_PAINT:
{
hDc = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rc);
SetBkMode(hDc, TRANSPARENT);
SetBkColor(hDc,0x00FFFF00); // Bleu
SetTextColor(hDc, 0x000000FF); // rouge
HFONT MaPolice; // On déclare un handle sur une fonte.
MaPolice = CreateFont(nHauteur_Caractere,nLargeur_Caractere,
nOrientation_Caractere,0,
500,false,false,false,0,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,DEFAULT_PITCH | FF_DONTCARE,
Police_Utile);
SelectObject(hDc, MaPolice);
SetTextColor(hDc, 0x005C03BE);
DrawText(hDc, "Bienvenue sur le serveur. v1.0", -1, &rc,
DT_SINGLELINE|DT_LEFT |DT_TOP);
DeleteObject(MaPolice);
EndPaint(hWnd, &ps);
break;
}
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDM_VEILLE:
{
SendMessage(hWnd,WM_SYSCOMMAND,SC_SCREENSAVE,0);
break;
}
case IDM_QUITTER:
{
int quit = 0; // Pour récupérer la réponse de l'utilisateur.
quit = MessageBox(hWnd,"Vous voulez réellement Quitter",
szClassName,MB_YESNO|MB_ICONQUESTION);
if (quit == IDNO)
{
return 0;
break;
}
else
{
SendMessage( hWnd, WM_CLOSE, 0, 0L);
break;
}
break;
}
break;
} // fin switch
} // WS_COMMAND
case WM_SYSCOMMAND :
{
switch (wParam)
{
case SC_CLOSE : // cas d'un click sur la croix de fermeture
{
int quit = 0;
quit = MessageBox(hWnd,"Vous voulez réellement Quitter",
szClassName,MB_YESNO|MB_ICONQUESTION);
if (quit == IDNO) {return 0; break;}
SendMessage( hWnd, WM_CLOSE, 0, 0);
break;
} // fin case SC_CLOSE
default : // on renvoie tous les autres messages système à
// windows selon la procédure normale.
{return DefWindowProc (hWnd, messages, wParam, lParam);break;}
}// fin switch (wParam)
break;
}
case WM_CLOSE: // -------------------------------------------------------
{
DestroyMenu(hMenu);
DestroyWindow( hWnd );
break;
} // fin case WM_CLOSE --------------------------------------------------
case WM_DESTROY:
{
PostQuitMessage (0); // (Voir partie 1)
break;
} // fin case WM_DESTROY ----------------------------------------------
default: // (Voir partie 1)
return DefWindowProc (hWnd, messages, wParam, lParam);
break;
} //fin de switch
return 0;
}
|
|
mercredi 27 juillet 2005 à 04:03:48 |
Re : terminer un processus

vecchio56
|
Ya pas tout ton programme la. Je parlais de la boucle des messages qui est dans le WinMain
|
|
mercredi 27 juillet 2005 à 10:35:13 |
Re : terminer un processus

kyript
|
a ouai bon cete fois si je met tout le winmain()
#include
#include
#include "Tutor_Win_32_Part_3a.h"
LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM);
HWND hWnd;
HMENU hMenu;
HMENU hMenu_Raccourci; // Declaration handle menu
// pour la fonction TrackPopupMenu
HBRUSH hCouleur;
char* Police;
const HBRUSH hCouleur_Blanc = CreateSolidBrush(RGB(255,255,255));
HBRUSH hBackground = hCouleur_Blanc ;
static char szClassName[ ] = "Fenêtre Windows";
static int nSelection = IDM_BLANC;
static int nHauteur_Caractere = 20;
static int nLargeur_Caractere = 10;
static int nOrientation_Caractere = 0;
static char* Police_Utile = "Arial";
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow )
{
WNDCLASSEX wndClassex;
wndClassex.cbSize = sizeof(WNDCLASSEX);
wndClassex.style = CS_HREDRAW | CS_VREDRAW;
wndClassex.lpfnWndProc = WindowProc;
wndClassex.cbClsExtra = 0;
wndClassex.cbWndExtra = 0;
wndClassex.hInstance = hInstance;
wndClassex.hIcon = NULL;
wndClassex.hCursor = NULL;
wndClassex.hbrBackground = hBackground;
wndClassex.lpszMenuName = NULL;
wndClassex.lpszClassName = szClassName;
wndClassex.hIconSm = NULL;
if (!RegisterClassEx(&wndClassex))
{
MessageBeep(0xFFFFFFFF | MB_ICONASTERISK);
MessageBox(hWnd, "Classe non enregistrer", "Probleme", MB_OK);
return 0;
}
hWnd = CreateWindowEx(0,
szClassName,
"Bientot un serveur",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
HWND_DESKTOP,
NULL,
hInstance,
NULL );
ShowWindow(hWnd, SW_SHOW);
hMenu = LoadMenu(hInstance, "Menu");
SetMenu(hWnd, hMenu);
UpdateWindow(hWnd);
MSG messages;
while(GetMessage(&messages, hWnd, 0, 0))
{
DispatchMessage(&messages);
TranslateMessage(&messages);
}
return messages.wParam;
}
|
|
mercredi 27 juillet 2005 à 18:42:44 |
Re : terminer un processus

cali70
|
Je vais peu être dire une connerie je sais pas mais si t'éssayais de de mettre le translatemessage avant le dispatchmessage.... peu être que ca irrait mieux...
|
|
Cette discussion est classée dans : case, break, processus, close, quit
Répondre à ce message
Sujets en rapport avec ce message
Petit jeu en mode texte [:D] [ par thedivxboy ]
Alors je carbure en C aujourd'hui ...Pourquoi la tête ne se déplace-t-elle pas au bon endroit ?Pourquoi dois-je mettre un getchar() à un certain endr
erreur a l'execution [ par vangeurmasker ]
J'ai créé un projet sous VC++ 6 pour faire une calcullette qui annalyse une chaine entrée. Lors de la compilation je n'ai aucune erreur. C'est a l'exe
[Hook Clavier] Pb d'accents circonflexes [ par BeLZeL ]
J'ai fait un programme simple dont le but est de faire un hook clavier global, et de tout mettre dans un fichier log.Tout fonctionne, sauf une chose,
CASE [ par CHKDSK2K ]
Bonjour, j'ai une variable de type char "choix"; je voudrais utiliser cette variable dans un switch mais il ne veut passwitch(choix){ case 'maison
Static et mfc [ par xXTomTomXx ]
voici mon code: int CbChange = CbCam->GetCurSel(); //on récupère la position de la combobox <FONT color=#0000ff size=2
Impossible d'envoyer un mail avec Mapi + Outlook ? [ par GDon_Fr ]
Bonjour à tous,Je dois développer une application qui saura envoyer un mail via n'importe quel client mail compatible avec "Simple Mapi". En regardant
Mapi et outlook ... comment ca marche ? [ par GDon_Fr ]
Bonjour à tous,Comme j'ai pas de réponse à côté je me permets de venir sur ce forum, vu que ca devient super mega URGENT :((((Je dois développer une a
Récuperation de privilege sur un partage [ par sam2004 ]
Salut tous, j'ai utilisé la fonction NetShareEnum avec la structure de donnée SHARE_INFOS_2 mai pas de resultat .est ce que qlqu'un a une idée commen
probleme de socket sur dev c++ [ par thunderfear ]
bonjour,donc voila g un gros probleme avec les socket. dès que je compile un code avec un socket, le linker me dit des truc et n'execute pas le prog.
Problème de SWITCH [ par EMSIEN ]
Bonjour Voilà J'ai rencontré un problème Lors de l'utilisation d'une instruction switch,D'abord je veux réaliser une fonction permettant de retourner
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|