Bonjour j'aimerais savoir comment faire pour lorsque je fais fermer le document il me met une fenetre gisée(ca j'ai trouver) mais ou il ne soit pas possible de noter quoi que ce soit
merci beaucoup de votre aide
voici une partie de mon code
// FindEdit.c
// Une fenêtre d'édition (RichEdit) avec dialogue "Chercher" non-modal
#include "OnlineSpell.h" // les ID du menu et autres
#define TAILLENOMFICH 256 // pour nom (et chemin) de fichier
#define TAILLETEXTE 30000 // taille du buffer de texte
// Charge la fenêtre avec le contenu d'un fichier choisi par l'utilisateur
// Utilise une boîte de dialogue standard
//void ChargeFenetre(HWND hWnd);
BOOL DemandeNom(char* szNomFichier,HWND hWnd,BOOL ouvrir);
void ChargeFenetre(char* szNomFichier, HWND hWnd);
//BOOL DemanderNomEnregistrer(char* szNomFichier, HWND hWnd) ;
void enregistrer(char* szNomFichier, HWND hWnd);
void nouveauDoc(HWND hWnd);
void effacerTout(HWND hWnd);
void Chercher(HWND hWnd); // ouvrir le dialogue chercher
PSTR szProgName = "OnlineSpell"; // le nom du programme
char nomSansChem [TAILLENOMFICH];
char tampon[256];
char szNomFichier[TAILLENOMFICH];
LRESULT CALLBACK WndProc(HWND hWnd, // handle de notre fenêtre
UINT nMsg, // numéro du message
WPARAM wParam, // 1ère info supplémentaire
LPARAM lParam) { // 2ème info supplémentaire
HINSTANCE hInst; // processus propriétaire
static HWND hWndEdit;
static BOOL EditNotChg = TRUE;
char * rep;
switch(nMsg) { // quel message ?
case WM_CREATE : // on va créer une sous-fenêtre
// le processus propriétaire
hInst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
LoadLibrary("RICHED32.DLL"); // librairie contenant RichEdit
hWndEdit = CreateWindowEx(
0, // style étendu (rien de particulier)
"RICHEDIT", // nom de la classe
NULL, // pas de titre
WS_CHILD | // fenêtre fille
WS_VISIBLE | // visible
WS_VSCROLL | // avec défilement vertical
ES_NOHIDESEL| // texte sélectionné tj. visible
ES_MULTILINE, // édition sur plusieurs lignes
0, 0, 0, 0, // dimension spécifiée ailleurs
hWnd, // handle fenêtre parente
NULL, // pas de menu
hInst, // processus propriétaire
NULL); // pas de data supplémentaires
SendMessage(hWndEdit, EM_SETBKGNDCOLOR, 0, (LPARAM)RGB(100,100,100));
return 0; // message traité
case WM_SETFOCUS : // on reçoit la main
SetFocus(hWndEdit); // la passer à la fenêtre fille
return 0; // message traité
case WM_SIZE : // dimension de fenêtre ajustée
// redimensionner fenêtre fille
MoveWindow(hWndEdit, // handle fenêtre fille
0, // bord gauche
0, // bord supérieur
LOWORD(lParam), // largeur
HIWORD(lParam), // hauteur
TRUE); // repeint la fenêtre fille
return 0; // message traité
case WM_CONTEXTMENU :
{
HMENU hmenu, hpopup;
hmenu = LoadMenu(hInst,"OnlineSpell");
hpopup = GetSubMenu(hmenu, 1);
TrackPopupMenuEx(hpopup, 0, LOWORD(lParam), HIWORD(lParam), hWndEdit, NULL);
DestroyMenu(hmenu);
return 0;
}
case WM_COMMAND :
/* if ((HWND)lParam == hWndEdit && HIWORD(wParam) == EN_IMECHANGE) {
MessageBeep(-1);
EnableMenuItem(GetMenu(GetParent(hWnd)),ID_FICHIER_ENREGISTRER,MF_BYCOMMAND);
}*/
// notification ou menu
if((HIWORD(wParam) ==0)||(HIWORD(wParam) ==1)) { // entrée du menu sélectionnée
//et racourcis clavier pas de notification
switch(LOWORD(wParam)) { // laquelle ?
case ID_FICHIER_NOUVEAU :
nouveauDoc(hWndEdit);
break;
//*******************************
case ID_FICHIER_FERMER:
if(EditNotChg ||
(rep=MessageBox(hWnd,"Quitter sans enregistrer les modifications ?"
,"Question ?",MB_YESNOCANCEL | MB_ICONQUESTION )) == IDYES)
DestroyWindow(hWnd);
else if (rep==IDNO){
enregistrer(hWnd, TRUE); // On enregistre.
//on met le truc griser et pas accessible on le rendra accessible avec nouveau et ouvrir }
return 0;
case ID_FICHIER_OUVRIR :
if(DemandeNom(&szNomFichier, hWnd,TRUE))
{ ChargeFenetre(szNomFichier,hWndEdit);
GetFileTitle(szNomFichier,nomSansChem,TAILLENOMFICH);
wsprintf(tampon,"%s [ %s ] ",szProgName,szNomFichier);
SetWindowText(hWnd,tampon);
}
break;
case ID_FICHIER_ENREGISTRERSOUS :
if(DemandeNom(&szNomFichier, hWnd,FALSE) ){
GetFileTitle(szNomFichier,nomSansChem,TAILLENOMFICH);
wsprintf(tampon,"%s [ %s ] ",szProgName,szNomFichier);
SetWindowText(hWnd,tampon);
enregistrer(&szNomFichier, hWndEdit);
}
break;
case ID_FICHIER_ENREGISTRER :
GetFileTitle(szNomFichier,nomSansChem,TAILLENOMFICH);
wsprintf(tampon,"%s [ %s ] ",szProgName,szNomFichier);
SetWindowText(hWnd,tampon);
enregistrer(&szNomFichier, hWndEdit);
break;
case ID_FICHIER_QUITTER : // fermer la fenêtre
PostMessage(hWnd, WM_CLOSE,0, 0); // envoyer message WM_CLOSE
break;
//**************
case ID_EDITER_COUPER : // envoie WM_CUT
SendMessage(hWndEdit, WM_CUT, 0, 0);
break;
case ID_EDITER_COPIER : // envoie WM_COPY
SendMessage(hWndEdit, WM_COPY, 0, 0);
break;
case ID_EDITER_COLLER : // envoie WM_PASTE
SendMessage(hWndEdit, WM_PASTE, 0, 0);
break;
case ID_EDITER_EFFACER : // envoie WM_CLEAR
SendMessage(hWndEdit, WM_CLEAR, 0, 0);
break;
case ID_EDITER_SELECTALL :
SendMessage(hWndEdit,EM_SETSEL,0, -1);
break;
case ID_EDITER_ALLCLEAR :
effacerTout(hWndEdit);
break;
//**************
case ID_ORTHO : // ouvre le dialogue Chercher
//Chercher(hWndEdit);
break;
}
return 0; // message traité
}
break; // traitement par défaut
case WM_DESTROY : // fenêtre en passe d'être détruite
PostQuitMessage(0); // envoie WM_QUIT
return 0; // message traité
}
// tous les messages non pris en charge
return( DefWindowProc(hWnd, nMsg, wParam, lParam) );
}
Babyboo