Udostępnij za pośrednictwem


Klasa CMFCStatusBar

Klasa CMFCStatusBar implementuje pasek stanu podobny do CStatusBar klasy. Jednak CMFCStatusBar klasa ma funkcje nieoferowane przez klasę CStatusBar , takie jak możliwość wyświetlania obrazów, animacji i pasków postępu oraz możliwość reagowania na dwukrotne kliknięcia myszy.

Aby uzyskać więcej informacji, zobacz kod źródłowy znajdujący się w folderze VC\atlmfc\src\mfc instalacji programu Visual Studio.

Składnia

class CMFCStatusBar : public CPane

Elementy członkowskie

Metody publiczne

Nazwa/nazwisko opis
CMFCStatusBar::CalcFixedLayout (Przesłonięcia) CBasePane::CalcFixedLayout).
CMFCStatusBar::CommandToIndex
CMFCStatusBar::Create Tworzy pasek sterowania i dołącza go do obiektu CPane . (Przesłonięcia) CPane::Create.)
CMFCStatusBar::CreateEx Tworzy pasek sterowania i dołącza go do obiektu CPane . (Przesłonięcia) CPane::CreateEx.)
CMFCStatusBar::D oesAllowDynInsertBefore Określa, czy inne okienko może być dynamicznie wstawione między tym okienkem a ramką nadrzędną. (Przesłonięcia) CBasePane::D oesAllowDynInsertBefore.
CMFCStatusBar::EnablePaneDoubleClick Włącza lub wyłącza obsługę dwukrotnego kliknięcia myszy na pasku stanu.
CMFCStatusBar::EnablePaneProgressBar Wyświetla pasek postępu w określonym okienku.
CMFCStatusBar::GetCount Zwraca liczbę okienek na pasku stanu.
CMFCStatusBar::GetDrawExtendedArea
CMFCStatusBar::GetExtendedArea
CMFCStatusBar::GetItemID
CMFCStatusBar::GetItemRect
CMFCStatusBar::GetPaneInfo
CMFCStatusBar::GetPaneProgress
CMFCStatusBar::GetPaneStyle Zwraca styl okienka. (Przesłonięcia) CBasePane::GetPaneStyle.)
CMFCStatusBar::GetPaneText
CMFCStatusBar::GetPaneWidth Zwraca szerokość w pikselach określonego okienka paska stanu.
CMFCStatusBar::GetTipText Zwraca tekst porad narzędzia dla określonego okienka paska stanu.
CMFCStatusBar::InvalidatePaneContent Unieważnia określone okienko i ponownie rysuje jego zawartość.
CMFCStatusBar::P reCreateWindow Wywoływana przez platformę przed utworzeniem okna systemu Windows dołączonego do tego CWnd obiektu. (Przesłonięcia) CWnd::P reCreateWindow.
CMFCStatusBar::SetDrawExtendedArea
CMFCStatusBar::SetIndicators
CMFCStatusBar::SetPaneAnimation Przypisuje animację do określonego okienka.
CMFCStatusBar::SetPaneBackgroundColor Ustawia kolor tła dla określonego okienka paska stanu.
CMFCStatusBar::SetPaneIcon Ustawia ikonę wskaźnika dla określonego okienka paska stanu.
CMFCStatusBar::SetPaneInfo
CMFCStatusBar::SetPaneProgress Ustawia bieżący postęp paska postępu dla określonego okienka paska stanu.
CMFCStatusBar::SetPaneStyle Ustawia styl okienka. (Przesłonięcia) CBasePane::SetPaneStyle.)
CMFCStatusBar::SetPaneText
CMFCStatusBar::SetPaneTextColor Ustawia kolor tekstu dla określonego okienka paska stanu.
CMFCStatusBar::SetPaneWidth Ustawia szerokość w pikselach określonego okienka paska stanu.
CMFCStatusBar::SetTipText Ustawia tekst porad narzędzia dla określonego okienka paska stanu.

Metody chronione

Nazwa/nazwisko opis
CMFCStatusBar::OnDrawPane Wywoływana przez platformę podczas ponownego rysowania okienka paska stanu.

Uwagi

Na poniższym diagramie przedstawiono rysunek paska stanu z przykładowej aplikacji pokazu paska stanu.

Przykład narzędzia CMFCStatusBar.

Przykłady

W poniższym przykładzie pokazano zmienne lokalne, których aplikacja używa do wywoływania różnych metod w CMFCStatusBar klasie. Te zmienne są deklarowane w pliku StatusBarDemoView.h. Ramka główna jest zadeklarowana w pliku MainFrm.h. Dokument jest zadeklarowany w pliku StatusBarDemoDoc.h, a widok jest zadeklarowany w pliku StatusBarDemoView.h. Ten fragment kodu jest częścią przykładu pokazu paska stanu.

int m_nProgressCurr;
BOOL m_bInProgress;

CImageList m_imlStatusAnimation;
BOOL m_bInAnimation;

CBitmap m_bmpIcon1;
CBitmap m_bmpIcon2;

W poniższym przykładzie pokazano, jak uzyskać odwołanie do CMFCStatusBar obiektu, wprowadzając GetStatusBar metodę w pliku MainFrm.h, a następnie wywołując tę metodę z GetStatusBar metody w pliku StatusBarDemoView.h. Ten fragment kodu jest częścią przykładu pokazu paska stanu.

// in MainFrm.h
public:
CMFCStatusBar &GetStatusBar()
{
   return m_wndStatusBar;
}
// in StatusBarDemoView.h
CMFCStatusBar &GetStatusBar() const
{
   return ((CMainFrame *)AfxGetMainWnd())->GetStatusBar();
}

W poniższym przykładzie pokazano, jak wywołać różne metody w CMFCStatusBar klasie w StatusBarDemoView.cpp. Stałe są deklarowane w pliku MainFrm.h. W przykładzie pokazano, jak ustawić ikonę, ustawić tekst etykietki narzędzia okienka paska stanu, wyświetlić pasek postępu w określonym okienku, przypisać animację do określonego okienka, ustawić tekst i szerokość okienka paska stanu oraz ustawić bieżący wskaźnik postępu paska postępu dla okienka paska stanu. Ten fragment kodu jest częścią przykładu pokazu paska stanu.

// in MainFrm.h
const int nStatusIcon = 0;
const int nStatusInfo = 1;
const int nStatusProgress = 2;
const int nStatusLabel = 3;
const int nStatusAnimation = 4;
// in StatusBarDemoView.cpp
GetStatusBar().SetPaneIcon(nStatusIcon, m_bmpIcon1);
GetStatusBar().SetTipText(nStatusIcon, _T("This is a tooltip"));
GetStatusBar().EnablePaneProgressBar(nStatusProgress, PROGRESS_MAX);
GetStatusBar().SetPaneAnimation(nStatusAnimation, NULL);
GetStatusBar().SetPaneAnimation(nStatusAnimation, m_imlStatusAnimation);
GetStatusBar().SetPaneText(nStatusAnimation, _T(""));
GetStatusBar().SetPaneWidth(nStatusAnimation, 16);
GetStatusBar().SetPaneProgress(nStatusProgress, m_nProgressCurr);

Hierarchia dziedziczenia

Obiekt CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCStatusBar

Wymagania

Nagłówek: afxstatusbar.h

CMFCStatusBar::CalcFixedLayout

virtual CSize CalcFixedLayout(
    BOOL bStretch,
    BOOL bHorz);

Parametry

[in] bStretch
[in] bHorz

Wartość zwracana

Uwagi

CMFCStatusBar::CommandToIndex

int CommandToIndex(UINT nIDFind) const;

Parametry

[in] nIDFind

Wartość zwracana

Uwagi

CMFCStatusBar::Create

BOOL Create(
    CWnd* pParentWnd,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
    UINT nID = AFX_IDW_STATUS_BAR);

Parametry

[in] pParentWnd
[in] dwStyle
[in] Nid

Wartość zwracana

Uwagi

CMFCStatusBar::CreateEx

BOOL CreateEx(
    CWnd* pParentWnd,
    DWORD dwCtrlStyle = 0,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
    UINT nID = AFX_IDW_STATUS_BAR);

Parametry

[in] pParentWnd
[in] dwCtrlStyle
[in] dwStyle
[in] Nid

Wartość zwracana

Uwagi

CMFCStatusBar::D oesAllowDynInsertBefore

virtual BOOL DoesAllowDynInsertBefore() const;

Wartość zwracana

Uwagi

CMFCStatusBar::EnablePaneDoubleClick

Włącza lub wyłącza obsługę dwukrotnego kliknięcia myszy na pasku stanu.

void EnablePaneDoubleClick(BOOL bEnable=TRUE);

Parametry

bEnable
[in] Jeśli wartość TRUE, włącz przetwarzanie myszy dwukrotnie. W przeciwnym razie wyłącz przetwarzanie myszy dwukrotnie kliknij.

Uwagi

Jeśli pasek stanu jest włączony do przetwarzania dwukrotnie kliknięć, system Windows wysyła powiadomienie WM_COMMAND wraz z identyfikatorem zasobu do właściciela paska stanu za każdym razem, gdy użytkownik dwukrotnie kliknie okienko paska stanu.

CMFCStatusBar::EnablePaneProgressBar

Wyświetl pasek postępu w określonym okienku.

void EnablePaneProgressBar(
    int nIndex,
    long nTotal=100,
    BOOL bDisplayText=FALSE,
    COLORREF clrBar=-1,
    COLORREF clrBarDest=-1,
    COLORREF clrProgressText=-1);

Parametry

nIndex
[in] Określa indeks okienka, którego pasek postępu ma być włączony.

nTotal
[in] Określa maksymalną wartość paska postępu.

bDisplayText
[in] Określa, czy pasek postępu powinien wyświetlać bieżącą wartość postępu.

clrBar
[in] Określa kolor tła paska postępu.

clrBarDest
[in] Określa pomocniczy kolor tła paska postępu. Użyj innej wartości niż clrBar , aby wypełnić kolor w połączeniu z gradientem.

clrProgressText
[in] Określa kolor tekstu paska postępu.

Uwagi

Jeśli chcesz wyłączyć wywołanie EnablePaneProgressBar paska postępu z wartością nTotal ustawioną na -1. Domyślnie wartość nTotal jest ustawiona na 100. W związku z tym nie potrzebujesz żadnych dodatkowych obliczeń, aby wyświetlić postęp jako wartość procentową.

Należy przekazać różne wartości dla clrBar i clrBarDest , aby kolor tła paska postępu wyświetlał kolor w połączeniu z gradientem. .

Aby ustawić bieżący postęp, wywołaj metodę CMFCStatusBar::SetPaneProgress .

CMFCStatusBar::GetCount

Pobiera liczbę okienek na pasku stanu.

int GetCount() const;

Wartość zwracana

Liczba okienek na pasku stanu.

CMFCStatusBar::GetDrawExtendedArea

BOOL GetDrawExtendedArea() const;

Wartość zwracana

Uwagi

CMFCStatusBar::GetExtendedArea

virtual BOOL GetExtendedArea(CRect& rect) const;

Parametry

[in] Rect

Wartość zwracana

Uwagi

CMFCStatusBar::GetItemID

UINT GetItemID(int nIndex) const;

Parametry

[in] nIndex

Wartość zwracana

Uwagi

CMFCStatusBar::GetItemRect

void GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

Parametry

[in] nIndex
[in] lpRect

Uwagi

CMFCStatusBar::GetPaneInfo

void GetPaneInfo(
    int nIndex,
    UINT& nID,
    UINT& nStyle,
    int& cxWidth) const;

Parametry

[in] nIndex
[in] Nid
[in] nStyle
[in] cxWidth

Uwagi

CMFCStatusBar::GetPaneProgress

long GetPaneProgress(int nIndex) const;

Parametry

[in] nIndex

Wartość zwracana

Uwagi

CMFCStatusBar::GetPaneStyle

UINT GetPaneStyle(int nIndex) const;

Parametry

[in] nIndex

Wartość zwracana

Uwagi

CMFCStatusBar::GetPaneText

void GetPaneText(
    int nIndex,
    CString& s) const;

CString GetPaneText(int nIndex) const;

Parametry

[in] nIndex
[in] s

Wartość zwracana

Uwagi

CMFCStatusBar::GetPaneWidth

Pobiera szerokość okienka paska stanu.

int GetPaneWidth(int nIndex) const;

Parametry

nIndex
[in] Określa indeks okienka paska stanu.

Wartość zwracana

Szerokość okienka paska stanu, które nIndex określa; w przeciwnym razie zero, jeśli okienko paska stanu nie istnieje.

CMFCStatusBar::GetTipText

Pobierz tekst etykietki narzędzia okienka paska stanu.

CString GetTipText(int nIndex) const;

Parametry

nIndex
[in] Określa indeks okienka, dla którego ma być pobierany tekst porad narzędzia.

Wartość zwracana

Tekst etykietki narzędzia okienka paska stanu, który określa nIndex . W przeciwnym razie pusty ciąg, jeśli okienko paska stanu nie istnieje dla określonego nIndex lub jeśli jego tekst etykietki narzędzia jest pusty.

CMFCStatusBar::InvalidatePaneContent

Unieważnij okienko paska stanu i ponownie rysuj jego zawartość.

void InvalidatePaneContent(int nIndex);

Parametry

nIndex
[in] Określa indeks okienka, którego zawartość ma być unieważniona i ponownie rysowana.

Uwagi

Gdy pasek stanu zostanie unieważniony, zostanie oznaczony do ponownego narysowania. System Windows ponownie rysuje go, gdy UpdateWindow metoda wysyła komunikat WM_PAINT do OnPaint metody .

CMFCStatusBar::OnDrawPane

Ponownie rysuj okienko paska stanu.

virtual void OnDrawPane(
    CDC* pDC,
    CMFCStatusBarPaneInfo* pPane);

Parametry

PDC
[in] Wskaźnik do kontekstu urządzenia do rysowania.

PPane
[in] Wskaźnik do CMFCStatusBarPaneInfo struktury zawierającej informacje o okienku, które mają zostać ponownie rysowane.

Uwagi

Domyślnie OnDrawPane ponownie rysuje okienko przy użyciu kontekstu urządzenia pDC zgodnie ze stylem i zawartością okienka.

Zastąp tę metodę w klasie pochodnej CMFCStatusBar, aby dostosować wygląd okienka.

CMFCStatusBar::P reCreateWindow

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

Parametry

[in] Cs

Wartość zwracana

Uwagi

CMFCStatusBar::SetDrawExtendedArea

void SetDrawExtendedArea(BOOL bSet = TRUE);

Parametry

[in] Zestaw bSet

Uwagi

CMFCStatusBar::SetIndicators

BOOL SetIndicators(
    const UINT* lpIDArray,
    int nIDCount);

Parametry

[in] lpIDArray
[in] nIDCount

Wartość zwracana

Uwagi

CMFCStatusBar::SetPaneAnimation

Przypisuje animację do określonego okienka.

void SetPaneAnimation(
    int nIndex,
    HIMAGELIST hImageList,
    UINT nFrameRate=500,
    BOOL bUpdate=TRUE);

Parametry

nIndex
[in] Określa indeks okienka, do którego chcesz przypisać do niego animację.

hImageList
[in] Określa dojście do listy obrazów, która zawiera ramki animacji.

nFrameRate
[in] Określa szybkość klatek w milisekundach dla animacji.

bUpdate
[in] Jeśli wartość TRUE, zaktualizuj zawartość okienka natychmiast. W przeciwnym razie zawartość okienka zostanie zaktualizowana po jej unieważnieniu.

Uwagi

Jeśli chcesz wyłączyć bieżącą animację, wywołaj metodę SetPaneAnimation z ustawioną wartością hImageList NULL.

CMFCStatusBar::SetPaneBackgroundColor

Ustawia kolor tła okienka paska stanu.

void SetPaneBackgroundColor(
    int nIndex,
    COLORREF clrBackground=(COLORREF)-1,
    BOOL bUpdate=TRUE);

Parametry

nIndex
[in] Określa indeks okienka, dla którego ma być ustawiony nowy kolor tła.

clrBackground
[in] Określa nowy kolor tła.

bUpdate
[in] Jeśli wartość TRUE, zaktualizuj zawartość okienka natychmiast. W przeciwnym razie nie aktualizuj zawartości okienka, dopóki okienko nie zostanie unieważnione przez inną metodę.

CMFCStatusBar::SetPaneIcon

Ustaw ikonę okienka paska stanu.

void SetPaneIcon(
    int nIndex,
    HICON hIcon,
    BOOL bUpdate=TRUE);

void SetPaneIcon(
    int nIndex,
    HBITMAP hBmp,
    COLORREF clrTransparent=RGB(255, 0, 255),
    BOOL bUpdate=TRUE);

Parametry

nIndex
[in] Określa indeks okienka, dla którego ma być ustawiony obraz.

hIcon
[in] Określa uchwyt do ikony, który ma zostać ustawiony jako obraz okienka.

bUpdate
[in] Określa, czy zawartość okienka ma być aktualizowana natychmiast.

hBmp
[in] Określa uchwyt mapy bitowej, który ma być ustawiony jako obraz okienka.

clrTransparent
[in] Określa przezroczysty kolor mapy bitowej, który wskazuje hBmp .

Uwagi

Możesz przekazać kod HICON lub HBITMAP wraz z przezroczystym kolorem, aby ustawić obraz okienka. Jeśli nie chcesz już wyświetlać obrazu, przekaż wartość NULL jako uchwyt obrazu.

Jeśli ustawiono dowolną uruchomioną animację CMFCStatusBar::SetPaneAnimation , animacja zostanie zatrzymana.

CMFCStatusBar::SetPaneInfo

void SetPaneInfo(
    int nIndex,
    UINT nID,
    UINT nStyle,
    int cxWidth);

Parametry

[in] nIndex
[in] Nid
[in] nStyle
[in] cxWidth

Uwagi

CMFCStatusBar::SetPaneProgress

Ustaw bieżący wskaźnik postępu paska postępu dla określonego okienka.

void SetPaneProgress(
    int nIndex,
    long nCurr,
    BOOL bUpdate=TRUE);

Parametry

nIndex
[in] Określa indeks okienka, dla którego ma być aktualizowany wskaźnik postępu.

nCurr
[in] Określa bieżącą wartość wskaźnika postępu.

bUpdate
[in] Określa, czy okienko ma zostać natychmiast zaktualizowane.

Uwagi

Wywołaj tę metodę, jeśli chcesz zaktualizować wskaźnik postępu dla paska postępu w określonym okienku.

Aby użyć tej funkcji dla danego okienka, najpierw należy wywołać polecenie CMFCStatusBar::EnablePaneProgressBar .

CMFCStatusBar::SetPaneStyle

void SetPaneStyle(
    int nIndex,
    UINT nStyle);

Parametry

[in] nIndex
[in] nStyle

Uwagi

CMFCStatusBar::SetPaneText

virtual BOOL SetPaneText(
    int nIndex,
    LPCTSTR lpszNewText,
    BOOL bUpdate = TRUE);

Parametry

[in] nIndex
[in] lpszNewText
[in] bUpdate

Wartość zwracana

Uwagi

CMFCStatusBar::SetPaneTextColor

Ustawia kolor tekstu określonego okienka.

void SetPaneTextColor(
    int nIndex,
    COLORREF clrText=(COLORREF)-1,
    BOOL bUpdate=TRUE);

Parametry

nIndex
[in] Określa indeks okienka, do którego chcesz przypisać nowy kolor tekstu.

clrText
[in] Określa kolor tekstu.

bUpdate
[in] Jeśli wartość TRUE, zaktualizuj zawartość okienka natychmiast. W przeciwnym razie nie aktualizuj zawartości okienka, dopóki okienko nie zostanie unieważnione przez inną metodę.

CMFCStatusBar::SetPaneWidth

Ustaw szerokość okienka paska stanu.

void SetPaneWidth(
    int nIndex,
    int cx);

Parametry

nIndex
[in] Indeks okienka paska stanu, dla którego ma być ustawiona nowa szerokość.

cx
[in] Nowa szerokość okienka paska stanu w pikselach.

CMFCStatusBar::SetTipText

Ustaw tekst etykietki narzędzia okienka paska stanu.

void SetTipText(
    int nIndex,
    LPCTSTR pszTipText);

Parametry

nIndex
[in] Indeks okienka, do którego chcesz przypisać tekst etykietki narzędzia.

pszTipText
[in] Nowy tekst etykietki narzędzia.

Zobacz też

Wykres hierarchii
Klasy
Klasa CPane
Klasa CStatusBar