Krzysztof Mossakowski
Materiały dla studentów
 

Klasy pomocnicze

MFC
Spis treści

Klasy pomocnicze
CPoint
CRect
CSize
CString
CTime
CTimeSpan
CMenu
CCommandLineInfo
CWaitCursor
CRecentFileList
CRuntimeClass

  •  CPoint

    • Wspomaga obsługę struktury Windows POINT

    • Dziedziczy z tej struktury 

[początek strony]

  •  CRect

    • Wspomaga obsługę struktury Windows RECT

    • Dziedziczy z tej struktury

    • Ma operatory rzutowania na LPRECT i LPCRECT

[początek strony]

  •  CSize

    • Wspomaga obsługę struktury Windows SIZE

    • Dziedziczy z tej struktury

[początek strony]

  •  CString

    • Obsługuje ciągi znaków zmiennej długości

    • Oparta jest na typie TCHAR, czyli 16-bitowym lub 8-bitowym znaku, w zależności od występowania definicji kompilatora _UNICODE

    • Ma operator rzutowania na LPCTSTR (czyli stały ciąg znaków)

    • Wskaźnik LPSTR (czyli zmienny ciąg znaków) można otrzymać wywołując CString::GetBuffer określając długość minimalną wielkość bufora

      • zwrócony LPSTR można używać dowolnie

      • przed wywołaniem innej metody z tego obiektu należy wywołać CString::ReleaseBuffer
        - należy pamiętać, że po tej funkcji wskaźnik zwrócony przez CString::GetBuffer może być już nieprawidłowy

[początek strony]

  •  CTime

    • Reprezentacja daty i czasu

    • Najczęściej używane funkcje:

      • CTime::GetCurrentTime - pobranie aktualnego czasu

      • CTime::Format - utworzenie ciągu znaków we wskazanym formacie reprezentującego czas

[początek strony]

  •  CTimeSpan

    • Reprezentacja różnicy pomiędzy czasami

    • Najczęściej używane funkcje:

      • odejmowanie dwóch obiektów CTime

      • CTimeSpan::Format - jak dla CTime::Format

[początek strony]

  •  CMenu

    • Interfejs dla uchwytu HMENU w Windows

    • Ułatwia operacje tworzenia, wczytywania, obsługi, odświeżania i niszczenia menu

[początek strony]

  •  CCommandLineInfo

    • Ułatwia przetwarzanie parametrów uruchomienia aplikacji (linię polecenia)

    • Standardowe użycie w aplikacjach MFC:

      • w CWinApp::InitInstance zostaje utworzony obiekt tej klasy

      • jako parametr zostanie przekazany do CWinApp::ParseCommandLine

      • ta funkcja będzie wywoływać CCommandLineInfo::ParseParam dla każdego parametru

      • wszystkie parametry zostaną obsłużone w wywołanej z CWinApp::InitInstance metodzie CWinApp::ProcessShellCommand

        [początek strony]

  •  CWaitCursor

    • Daje najprostszy sposób zmiany aktualnego kursora na kursor oczekiwania

    • W konstruktorze jest ustawiany kursor oczekiwania, w destruktorze jest przywracany poprzedni

      • z tego powodu zwykle obiekty tej klasy są lokalne i statyczne

    • W przypadku niepożądanej zmiany kursora oczekiwania na zwykły (np. po pojawieniu się okna dialogowego) można go przywrócić używając metody CWaitCursor::Restore

      • jeśli podczas wywoływania tej funkcji kursor oczekiwania będzie widoczny, nie zajdzie żadna zmiana

    • Innym sposobem zmiany kursora jest użycie funkcji: CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursor i CCmdTarget::RestoreWaitCursor

    • Kursor oczekiwania jest ustawiany przez wirtualną metodę CWinApp::DoWaitCursor

[początek strony]

  •  CRecentFileList

    • Wspomaga kontrolę nad listą ostatnio używanych plików (MRU - most recently used)

    • Możliwość dodawania i usuwania z listy, zapisu i odczytu listy z rejestrów, uaktualnienia menu zawierającego tę listę

[początek strony]

  •  CRuntimeClass

    • Daje zdolność określenia klasy obiektu podczas wykonywania programu

    • Przydatne gdy trzeba sprawdzić typ argumentu lub gdy trzeba napisać specjalny kod dla obiektów danej klasy

    • Klasa, której obiekty mają mieć tę cechę, musi być potomkiem kasy CObject (niekoniecznie bezpośrednim) i musi być dla tej klasy zadeklarowane jedno z makr: DECLARE_DYNAMIC, DECLARE_DYNCREATE lub DECLARE_SERIAL

    • Najczęstszym wykorzystaniem klasy CRuntimeClass jest użycie metody CObject::IsKindOf (np. pObject->IsKindOf(RUNTIME_CLASS(CMyClass)))

[początek strony]