salut !
je cherche et je trouve pas, ou alors je sais pas m'en servir, comment on recupere la position actuelle du fenetre(dialogbox).
j'ai essayé des fonctions telles que GetX et GetY mais ca marche pas (ca doit ne pas exister, j'ai essayer au hasard)
secondo, comment fait-on pour empecher l'affichage d'autres fenetres enfants tant qu'une est ouverte ?
mon code :
#include <windows.h>
#include <fstream.h>
#include <stdlib.h>
#include <stdio.h>
#include <commctrl.h>
#include "resource.h"
FILE *agen;
char art[255];
char tit[255];
char artv[255];
char titv[255];
int comefrom;
void file()
{
if (comefrom == 1)
{
agen =fopen("sgl.lst","a+");
}
else if (comefrom == 2)
{
agen =fopen("lbm.lst","a+");
}
else if (comefrom == 3)
{
agen =fopen("gm.lst","a+");
}
else if (comefrom == 4)
{
agen =fopen("app.lst","a+");
}
fprintf(agen,"(%s)[%s]\n",art,tit);
fclose(agen);
MessageBox (NULL, "L'auteur et la chanson ont bien été ajouté.", "Ok !", 0 + MB_ICONASTERISK);
}
void verif()
{
int c;
c = 0;
agen =fopen("liste.lst","r");
c= fgetc(agen);
fclose(agen);
}
LRESULT CALLBACK AlbProc(HWND DlgAlb, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(DlgAlb);
break;
case WM_DESTROY:
EndDialog(DlgAlb,0);
break;
case WM_PAINT:
SetWindowPos(DlgAlb,HWND_TOP,327,0,478,150,SWP_SHOWWINDOW);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
switch(LOWORD(wParam))
{
case IDCADD:
{
GetDlgItemText(DlgAlb,IDC_ART,art,255);
GetDlgItemText(DlgAlb,IDC_TIT,tit,255);
SetDlgItemText(DlgAlb,IDC_STATADD,"Ajout en cours...");
comefrom = 2;
file();
SetDlgItemText(DlgAlb,IDC_STATADD,"Ajout");
}
break;
case IDC_CANCEL:
EndDialog(DlgAlb,0);
break;
}
}
break;
default:
return FALSE;
}
return FALSE;
}
LRESULT CALLBACK AddSongProc(HWND DlgSong, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(DlgSong);
break;
case WM_DESTROY:
EndDialog(DlgSong,0);
break;
case WM_PAINT:
SetWindowPos(DlgSong,HWND_TOP,327,0,478,150,SWP_SHOWWINDOW);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
switch(LOWORD(wParam))
{
case IDCADD:
{
GetDlgItemText(DlgSong,IDC_ART,art,255);
GetDlgItemText(DlgSong,IDC_TIT,tit,255);
SetDlgItemText(DlgSong,IDC_STATADD,"Ajout en cours...");
comefrom = 1;
file();
SetDlgItemText(DlgSong,IDC_STATADD,"Ajout");
}
break;
case IDC_CANCEL:
EndDialog(DlgSong,0);
break;
}
}
break;
default:
return FALSE;
}
return FALSE;
}
LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
int nCmdShow;
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hDlg);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
switch(LOWORD(wParam))
{
case IDC_ADDSONG:
hDlg = CreateDialog(NULL,MAKEINTRESOURCE(IDD_ADDSONG), NULL, (DLGPROC) AddSongProc);
if(hDlg == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow(hDlg,nCmdShow);
UpdateWindow(hDlg);
break;
case IDC_ADDALB:
hDlg = CreateDialog(NULL,MAKEINTRESOURCE(IDD_ADDALB), NULL, (DLGPROC) AlbProc);
if(hDlg == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow(hDlg,nCmdShow);
UpdateWindow(hDlg);
break;
case IDCANCEL:
DestroyWindow(hDlg);
break;
}
}
break;
default:
return FALSE;
}
return FALSE;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
HWND hdlg;
MSG Msg;
hdlg = CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC) DlgProc);
if(hdlg == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow(hdlg, nCmdShow);
UpdateWindow(hdlg);
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
il ne vous sera pas d'une grande utilité mais bon, ca peut toujours servir