maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004
-
22 juil. 2004 à 11:05
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
23 juil. 2004 à 15:55
bonjour,
Voilà j'ai un programme qui ouvre sur un menu . Ce menu permet d'ouvrir plusieurs fenêtres mais lorque une est ouverte je ne peux pas cliquer sur mon menu.
Ce que je voudrais faire c'est pouvoir ouvrir plusieurs fenêtre à partir de mon menu.
Comment est ce que je peux faire ça?
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 23 juil. 2004 à 15:34
voilà la déclaration de mes fonctions , je mets pas tout le code parce que c'est long !
Donc ma fenêtre menu me permet d'ouvrir la fenêtre A PROPOS DE , FENETRE DROITS ,FENETRE OUVRIR PDF . Ca j'y arrive bien mais une par une et ma fenêtre menu devient inactive (elle est toujours visible). Je voudrais pouvoir toute les ouvrir! (Mais pas deux fois la même!)
//+++++++++++++++++++++++++++ FENETRE A PROPOS DE
//Procédure de gestion des évènements de la fenêtre ABOUT
BOOL CALLBACK AboutDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
//+++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++ FENETRE DROITS
//Procédure de gestion des évènements de la fenêtre DROITS
BOOL CALLBACK DroitsDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
//Initialisation des CheckBox suivant les droits de l'utilisateur
void CheckBox(HWND hdlg);
//+++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++ FENETRE OUVRIR PDF
//Procédure de gestion des évènements de la fenêtre Ouvrirpdf
BOOL CALLBACK PdfDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam);
//Initialise la boite de dialogue Pdf
void InitDialogPdf(HWND hdlg);
//Fonction qui implémente et affiche le browser
void OnBrowse();
//Fonction qui enlève la chaîne de caractère .pdf à la fin de szfile
void EnlevePointPdf();
//+++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++ FENETRE MENU
//Procédure de gestion des évènements de la fenêtre Menu
BOOL CALLBACK MenuDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam);
//Initialise la boite de dialogue Menu
void InitDialogMenu(HWND hdlg);
//+++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++ FENETRE MOT DE PASSE
//Procédure de gestion des évènements de la fenêtre Motdepasse
BOOL CALLBACK MotdepasseDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam);
//Initialise la fenêtre Motdepasse
void InitDialogMotdepasse(HWND hdlg);
//Vérifie le mot de passe rentré par l'utilisateur
int VerifMotdepasse(char Login[10],char Password[16],HWND hdlg);
//+++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++ FENETRE BIENVENUE
//Procédure de gestion des évènements de la fenêtre Bienvenue
BOOL CALLBACK BienvenueDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam);
//+++++++++++++++++++++++++++++++++++++++++++++
//POINT D'ENTREE DU PROG (EQUIVALENT DU MAIN)
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE x, PSTR y, int z);
switch(mssg)
{
case WM_INITDIALOG:
InitDialogMenu(hdlg);
return 1;
case WM_NOTIFY:
InfoBullesMenu(lParam);
return 0;
case WM_CTLCOLORSTATIC:
SetBkMode((HDC)wParam,TRANSPARENT);
return (LONG)(LONG_PTR)hbrush;
case WM_CTLCOLORDLG:
return (LONG)(LONG_PTR)hbrush;
case WM_COMMAND:// on regarde les messages relatifs aux controles
// les 16 bits de poids faible (recuperes par la macro LOWORD()) nous indiquent
// le controle concerne par le message.
switch( LOWORD(wParam) ){
// bouton 'Exit'
case ID_FILE_EXIT:
// on quitte le dialogue en renvoyant la valeur 0 en valeur de retour.
// Attention !! cela ne veut pas dire que l'on quitte l'application mais
// juste que le dialogue est tue.
CloseDataBase();
EndDialog(hdlg, 0);
break;
// Item du menu nomme 'A propos de cette application ...'
case ID_ABOUT_ABOUTTHISAPPLICATION:
// on lance un autre dialogue (de type modal ici pour forcer l'utilisateur a
// cliquer sur OK pour revenir au dialogue principal).
DialogBoxParam(hinst, (LPCTSTR)IDD_ABOUT, hdlg, AboutDlgProc, 0);
//DialogBox( hinst, MAKEINTRESOURCE(IDD_DIALOG_ABOUT), hdlg, AboutDlgProc );
break;
case ID_DROIT:
// on lance un autre dialogue (de type modal ici pour forcer l'utilisateur a
// cliquer sur OK pour revenir au dialogue principal).
DialogBoxParam(hinst, (LPCTSTR)IDD_DROITS, hdlg, DroitsDlgProc, 0);
//DialogBox( hinst, MAKEINTRESOURCE(IDD_DIALOG_ABOUT), hdlg, AboutDlgProc );
break;
case IDCANCEL:
CloseDataBase();
EndDialog(hdlg,0);
return 0;
case IDC_pdf:
DialogBoxParam(hinst, (LPCTSTR)IDD_Ouvrirpdf, hdlg, PdfDlgProc, 0);
return 0;
switch(mssg)
{
case WM_INITDIALOG:
{
InitDialogMotdepasse(hdlg);
return 1;
}
case WM_CTLCOLORSTATIC:
{
SetBkMode((HDC)wParam,TRANSPARENT);
return (LONG)(LONG_PTR)hbrush;
}
case WM_CTLCOLORDLG:
return (LONG)(LONG_PTR)hbrush;
case WM_COMMAND:
switch(wParam)
{
case IDCANCEL:
{
//ferme les bases de données
CloseDataBase();
//fin du dialog
EndDialog(hdlg, 0);
//return 0
return 0;
}
case IDENTRER:
{
//enregistre le champs IDC_Login dans login
GetDlgItemText(hdlg,IDC_Login,Login,10);
//enregistre le champs IDC_Mp dans motdepasse
GetDlgItemText(hdlg,IDC_Mp,Password,16);
//vérification du mot de passe
VerifMotdepasse(Login,Password,hdlg);
return 0;
}
}
//images dans boutons
SendMessage(GetDlgItem(hdlg, IDENTRER) , BM_SETIMAGE, IMAGE_BITMAP,(LONG)(LONG_PTR) LoadBitmap(hinst, (LPCTSTR)IDB_Entrer));
SendMessage(GetDlgItem(hdlg, IDCANCEL) , BM_SETIMAGE, IMAGE_BITMAP, (LONG)(LONG_PTR)LoadBitmap(hinst, (LPCTSTR)IDB_Quitter));
//icone de la fenêtre
SetClassLong(hdlg, GCL_HICON, (LONG)(LONG_PTR)LoadIcon(hinst, (LPCTSTR)IDI_SGCV));
//copy le hwnd de la fenêtre en cours dans hmain
return 1;
case WM_CTLCOLORDLG:
return (long)(LONG_PTR)hbrush;
case WM_CTLCOLORSTATIC:
SetBkMode((HDC)wParam,TRANSPARENT);
return (long)(LONG_PTR)hbrush;
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 23 juil. 2004 à 15:55
Dans BienvenueDlgProc, tu crees une fenetre fille de hdlg alors que tu la tues avant par EndDialog, un peu de coherence stp.
Je t'avais deja arrange cela dans ton ancien proj.
Regle ce point, si besoin reorganise le deroulement du prog.
On verra le reste ensuite.