ColorDialog et FileDialog en PAS MFC

sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 - 4 févr. 2004 à 21:37
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 - 6 févr. 2004 à 18:16
Salut a tous, voila, tout est plus ou moins dans le sujet, comment faire pour ouvrir les fameuses fenetres de couleur et de fichier de Windows, pour genre Ouvrir.../Sauvegarder...

Merci d'avance

PS : Pas de MFC, merci =)

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
5 févr. 2004 à 00:54
ex ouvrir :

// boîte de dialogue de demande d'ouverture de fichier
TCHAR szFileName[_MAX_PATH] = _T("");
OPENFILENAME ofn = {0};
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = m_hWnd;
ofn.lpstrFilter = _T("Image bitmap (*.bmp)\0*.bmp\0");
ofn.nFilterIndex = 1;
ofn.lpstrFile = szFileName;
ofn.nMaxFile = _countof(szFileName);
ofn.lpstrTitle = _T("Ouvrir");
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_LONGNAMES;

if(!GetOpenFileName(&ofn))
return;

ex enregistrer :

// boîte de dialogue de demande de nom de fichier
TCHAR szNewName[_MAX_PATH];
OPENFILENAME ofn = {0};
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = m_hWnd;
ofn.lpstrFilter = _T("Image bitmap (*.bmp)\0*.bmp\0");
ofn.nFilterIndex = 1;
ofn.lpstrFile = szNewName;
ofn.nMaxFile = _countof(szNewName);
ofn.lpstrTitle = _T("Enregistrer sous");
ofn.lpstrDefExt = _T(".bmp");
ofn.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_LONGNAMES | OFN_OVERWRITEPROMPT;

if(!GetSaveFileName(&ofn))
return;

ex couleurs

COLORREF m_CustomColors[16];
COLORREF color;
CHOOSECOLOR cc = {0};
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = hWndParent;
cc.rgbResult = color;
cc.lpCustColors = m_CustomColors;
cc.Flags = CC_FULLOPEN | CC_RGBINIT;

if(!ChooseColor(&cc))
return
0
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
6 févr. 2004 à 18:16
trop niquel, merci, ca fonctionne a la perfection =)

juste quelques petit details, les TCHAR et les _T() ne sont pas utilent, aussi le \0 tout a la fin dans le filtre est implicite car le compilo mais un zero de fin de chaine automatiquement apres fermeture des guillemets =)

aussi tu peux remplacer _countof(szFileName); par _MAX_PATH puisque _countof divise la taille total par la taille du type, ce qui reviend a avoir le nombre d'element de ton type, ce qui est en l'occurence _MAX_PATH =)

voila, merci enormement, ca fonctionne bien et tout, c'est sympa pour ton aide, merci =)
0
Rejoignez-nous