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ł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
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.