Dialog predefiniowanyCzęsto w różnych programach występuje zakładka, przycisk służące do wybrania pliku, koloru, czy czcionki. Pewnie zauważyliśmy, że większość tych dialogów jest taka sama. Właśnie są to dialogi predefiniowane. Dzięki niemu możemy odebrać np. rodzaj czcionki wybranej przez użytkownika naszego programu wywołując standardowy dialog. Opisze tutaj wymienione dialogi służące do wybrania koloru, czcionki, pliku. Mamy do dyspozycji klasy: CColorDialog- operacje związane z wyborem koloru CFileDialog - operacje związane z zapisywaniem i odczytywaniem CFontDialog - operacje związane z wyborem czcionki CColorDialogNajpierw tworzymy obiekt klasy CColorDialog: Przykład: CColorDialog mydlg; Następnie wywołujemy funkcję DoModal() na rzecz tego obiektu Przykład: CColorDialog mydlg; mydlg.DoModal(); Jeżeli funkcja DoModal() zwróci IDOK możemy odebrać kolor wybrany przez użytkownika dzięki funkcji GetColor(). Przykład: CColorDialog mydlg; //tworze obiekt ..... if(mydlg.DoModal()==IDOK) //wywołujemy DoModal() { COLORREF kolor=mydlg.GetColor(); //pobieram kolor wybrany //.............// //.............// } CFileDialogKonstruktor klasy CFileDialog wygląda następująco: CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL); Ważniejsze pola: BOpenFileDialog - jeżeli zmienna ma wartość TRUE to wywoływany jest dialog do otwierania pliku, a w przeciwnym wypadku wywołany zostanie dialog do zapisu. LpszFileName - szukany plik(np. autoexec.bat) lub grupa plików (np. *.txt) LpszFilter - korzystając z tej funkcji możemy także filtrować pokazywane pliki. Można także utworzyć kilka reguł filtrowania. Rozszerzenia i opis pokazywany jest w dolnym polu combo. Inne pola będziemy wypełniać defaultowymi wartościami. Przykład utworzenia obiektu klasy CFileDialog: char sz[] = "Wszystkie Pliki |*.*| Pliki tekstowe |*.txt|"; tworzę filtr. Tworzona jest tu tablica znakowa najpierw wpisujemy opis pola czyli np. pliki, następnie wpisujemy znak "|" i po nim wpisujemy filtr np. "*.*", zakańczamy znakiem "|". Powyżej utworzyliśmy 2 filtry pierwszy to wszystkie pliki drugi to pliki tekstowe. CFontDialogNajpierw tworzymy obiekt klasy CFontDialog: Przykład: CFontDialog myfont; Następnie wywołujemy funkcję DoModal() na rzecz tego obiektu Przykład: CFontDialog myfont; myfont.DoModal(); Jeżeli funkcja DoModal() zwróci nam IDOK to możemy pobrać informacje dotyczące wyboru korzystając z następujących funkcji wywoływanych na rzecz obiektu dialogu: CString GetFaceName( ) - funkcja zwraca nazwę wybranej czcionki CString GetStyleName( ) - funkcja zwraca styl czcionki int GetSize( ) - funkcja zwraca wielkość czcionki w punktach COLORREF GetColor( ) - funkcja zwraca kolor czcionki Itd.... Jak poprzednio funkcji tych jest więcej ale myślę że te wystarczą na początek jak ktoś będzie potrzebował więcej odsyłam do pomocy visuala. Przykład odebrania nazwy wybranej czcionki: CFontDialog myfont; //tworze obiekt CFontDialog if(myfont.DoModal()==IDOK) //wywołuje DoModal i sprawdzam czy naciśnięto ok { CString nazwa=myfont.GetFaceName(); //pobieram nazwę czcionki wybranej //.......// //..........// } Autorem tekstu jest: Tomasz Urbaniak |