Wywoływanie standardowego okna Czcionka
Stronę tą wyświetlono już: 2605 razy
Wstęp
Kolejnym często spotykanym w wielu programach standardowym oknem systemu Windows jest okno wyboru czcionki, które w polskiej wersji językowej ma nazwę Czcionka. Do wywołania tego okna służy funkcja ChooseFont, która przyjmuje jako jedyny parametr wskaźnik do struktury typu CHOOSEFONT. Aby skorzystać z tej funkcji konieczne jest załączenie do projektu biblioteki:
Wykorzystam funkcję w projekcie myNotepad by w praktyczny sposób pokazać, jak można w prosty sposób zwiększyć funkcjonalność tego programu.
Dodawanie modyfikacja menu programu myNotepad
Zanim zacznę modyfikację samego kodu programu warto dodać do menu głównego dodatkowe menu Ustawienia i w tej pozycji dodatkową pozycję Czcionka, identyfikator tej pozycji powinien być z automatu ustawiony na ID_USTAWIENIA_CZCIONKA, jeżeli tak nie jest to proszę to zmienić. Do zasobów można się dostać wciskając kombinację Ctrl+Shift+E lub wybierając z menu View->Resource View i pojawi się okno o nazwie Resource View, w którym na rozwijanej liście można znaleźć menu z projektu. Kliknięcie tej pozycji otworzy edytor graficzny tegoż menu, które po wprowadzeniu modyfikacji powinno wyglądać jak na poniższym rysunku.
Wprowadzenie poprawek do kodu programu myNotepad
Menu zostało zmodyfikowane, trzeba teraz na samym początku projektu załączyć wcześniej wspomniany plik commdlg.h. Teraz zaraz za bibliotekami załączonymi do projektu wstawić trzeba następującą funkcję odpowiedzialną za pozyskiwanie uchwytu czcionki:
Powyższy fragment kodu wstawiłem wraz z bibliotekami, które wcześniej zostały załączona aby wiadomo było, gdzie funkcję dodać do projektu. Jak widać, jeżeli funkcja ChooseFont zwróci TRUE to zwracam utworzony za pomocą funkcji CreateFontIndirect uchwyt do czcionki. Funkcja GetChooseFont przyjmuje trzy parametry, pierwszym jest oczywiście uchwyt okna rodzica, drugim jest wskaźnik na strukturę typu LOGFONT opisującą czcionkę natomiast trzeci to zmienna 24-bitowa typu COLORREF opisująca kolor w formacie rgb. Zmienna ta będzie używana do zmiany koloru czcionki rysowanej w kontrolce hedit.
Na sam początek w funkcji hwndProc dodać należy takie zmienna:
W powyższym wyrywku kodu opisane zostały komentarzem jedynie te elementy, które zostały dodane. Teraz w komunikacie WM_CREATE musi nastąpić znacząca zmiana:
Dodać należy do funkcji hwndProc obsługę następującego komunikatu związanego z zmianą koloru czcionki w kontrolce hedit:
W komunikacie WM_COMMAND w sekcji związanej z obsługą menu należy dodać kod związany z obsługą kliknięcia dodanej pozycji menu:
W komunikacie WM_DESTROY przed wywołaniem funkcji PostQuitMessage należy zwolnić uchwyt czcionki:
Nowe funkcje i struktury
Lista nowo poznanych funkcji użytych w kodzie programu:
- ChooseFont - wyświetla okno wyboru czcionki, funkcja ta jest ściśle powiązana z strukturami CHOOSEFONT oraz LOGFONT;
- DeleteObject - funkcja zwalnia uchwyt czcionki;
Lista nowo poznanych struktur użytych w kodzie:
- CHOOSEFONT - struktura zawierająca informacje niezbędne do wyświetlenia okna Czcionki za pomocą funkcji ChooseFont;
- LOGFONT - struktura używana do opisu czcionki.
Tytuł:
C++ Zbiór zadań z rozwiązaniami
Autor:
Tomasz Jaśniewski
Tytuł:
Mikrokontrolery dla hobbystów. Projekty DIY w języku C i C++
Autor:
Miguel Angel Garcia-Ruiz, Pedro Cesar Santana Mancilla
Tytuł:
Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów
Autor:
Adrian Ostrowski, Piotr Gaczkowski
Tytuł:
Wprowadzenie do C++
Autor:
Michał Matlak
Tytuł:
Opus magnum C++ 11. Programowanie w języku C++. Wydanie II poprawione (komplet)
Autor:
Jerzy Grębosz
Tytuł:
Programowanie wieloplatformowe z C++ i wxWidgets 3
Autor:
Bartosz W. Warzocha
Tytuł:
Język C++ i przetwarzanie współbieżne w akcji. Wydanie II
Autor:
Anthony Williams
Tytuł:
C++ dla bystrzaków. Wydanie VII
Autor:
Stephen R. Davis
Tytuł:
Tablice informatyczne. Podstawy C++
Autor:
Radosław Sokół
Tytuł:
Opus magnum C++11. Programowanie w języku C++ (komplet)
Autor:
Jerzy Grębosz