Udostępnij za pośrednictwem


Klasa CStatusBarCtrl

Udostępnia funkcje kontrolki paska stanu wspólnego systemu Windows.

Składnia

class CStatusBarCtrl : public CWnd

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CStatusBarCtrl::CStatusBarCtrl CStatusBarCtrl Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CStatusBarCtrl::Create Tworzy kontrolkę paska stanu i dołącza ją do CStatusBarCtrl obiektu.
CStatusBarCtrl::CreateEx Tworzy kontrolkę paska stanu z określonymi stylami rozszerzonymi systemu Windows i dołącza ją do CStatusBarCtrl obiektu.
CStatusBarCtrl::D rawItem Wywoływana, gdy zmienia się wizualny aspekt kontrolki paska stanu rysowania właściciela.
CStatusBarCtrl::GetBorders Pobiera bieżące szerokości poziomych i pionowych obramowań kontrolki paska stanu.
CStatusBarCtrl::GetIcon Pobiera ikonę części (znanej również jako okienko) w bieżącej kontrolce paska stanu.
CStatusBarCtrl::GetParts Pobiera liczbę części w kontrolce paska stanu.
CStatusBarCtrl::GetRect Pobiera prostokąt ograniczenia części w kontrolce paska stanu.
CStatusBarCtrl::GetText Pobiera tekst z danej części kontrolki paska stanu.
CStatusBarCtrl::GetTextLength Pobierz długość tekstu w postaci znaków z danej części kontrolki paska stanu.
CStatusBarCtrl::GetTipText Pobiera tekst etykietki narzędzia dla okienka na pasku stanu.
CStatusBarCtrl::IsSimple Sprawdza kontrolkę okna stanu, aby określić, czy jest w trybie prostym.
CStatusBarCtrl::SetBkColor Ustawia kolor tła na pasku stanu.
CStatusBarCtrl::SetIcon Ustawia ikonę okienka na pasku stanu.
CStatusBarCtrl::SetMinHeight Ustawia minimalną wysokość obszaru rysunkowego kontrolki paska stanu.
CStatusBarCtrl::SetParts Ustawia liczbę części w kontrolce paska stanu i współrzędnych prawej krawędzi każdej części.
CStatusBarCtrl::SetSimple Określa, czy kontrolka paska stanu wyświetla prosty tekst, czy wyświetla wszystkie części sterujące ustawione przez poprzednie wywołanie metody SetParts.
CStatusBarCtrl::SetText Ustawia tekst w danej części kontrolki paska stanu.
CStatusBarCtrl::SetTipText Ustawia tekst etykietki narzędzia dla okienka na pasku stanu.

Uwagi

"Kontrolka paska stanu" to okno poziome, zwykle wyświetlane w dolnej części okna nadrzędnego, w którym aplikacja może wyświetlać różne rodzaje informacji o stanie. Kontrolkę paska stanu można podzielić na części, aby wyświetlić więcej niż jeden typ informacji.

Ta kontrolka CStatusBarCtrl (i dlatego klasa) jest dostępna tylko dla programów działających w systemach Windows 95/98 i Windows NT w wersji 3.51 lub nowszej.

Aby uzyskać więcej informacji na temat korzystania z programu CStatusBarCtrl, zobacz Controls and Using CStatusBarCtrl (Kontrolki i Używanie CStatusBarCtrl).

Hierarchia dziedziczenia

Obiekt CObject

CCmdTarget

CWnd

CStatusBarCtrl

Wymagania

Nagłówek: afxcmn.h

CStatusBarCtrl::Create

Tworzy kontrolkę paska stanu i dołącza ją do CStatusBarCtrl obiektu.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametry

dwStyle
Określa styl kontrolki paska stanu. Zastosuj dowolną kombinację stylów kontrolek paska stanu wymienionych w typowych stylach kontrolek w zestawie Windows SDK. Ten parametr musi zawierać styl WS_CHILD. Powinien również zawierać styl WS_VISIBLE.

Rect
Określa rozmiar i położenie kontrolki paska stanu. Może to być obiekt CRect lub struktura RECT .

pParentWnd
Określa okno nadrzędne kontrolki paska stanu, zwykle CDialog. Nie może mieć wartości NULL.

Nid
Określa identyfikator kontrolki paska stanu.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie zero.

Uwagi

Utworzysz element CStatusBarCtrl w dwóch krokach. Najpierw wywołaj konstruktor, a następnie wywołaj Createmetodę , która tworzy kontrolkę paska stanu i dołącza ją do CStatusBarCtrl obiektu.

Domyślna pozycja okna stanu znajduje się u dołu okna nadrzędnego, ale można określić styl CCS_TOP, aby był wyświetlany w górnej części obszaru klienta okna nadrzędnego. Możesz określić styl SBARS_SIZEGRIP, aby uwzględnić uchwyt rozmiaru po prawej stronie okna stanu. Połączenie stylów CCS_TOP i SBARS_SIZEGRIP nie jest zalecane, ponieważ wynikowy uchwyt ustalania rozmiaru nie działa, mimo że system rysuje go w oknie stanu.

Aby utworzyć pasek stanu z rozszerzonymi stylami okien, wywołaj metodę CStatusBarCtrl::CreateEx zamiast Create.

Przykład

VERIFY(m_wndSBC.Create(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP,
                       CRect(0, 0, 0, 0), this, IDC_STATUSBARCTRL));

CStatusBarCtrl::CreateEx

Tworzy kontrolkę (okno podrzędne) i kojarzy ją z obiektem CStatusBarCtrl .

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametry

dwExStyle
Określa rozszerzony styl tworzonej kontrolki. Aby uzyskać listę rozszerzonych stylów systemu Windows, zobacz parametr dwExStyle dla polecenia CreateWindowEx w zestawie WINDOWS SDK.

dwStyle
Określa styl kontrolki paska stanu. Zastosuj dowolną kombinację stylów kontrolek paska stanu wymienionych w typowych stylach kontrolek w zestawie Windows SDK. Ten parametr musi zawierać styl WS_CHILD. Powinien również zawierać styl WS_VISIBLE.

Rect
Odwołanie do struktury RECT opisującej rozmiar i położenie okna do utworzenia w współrzędnych klienta pParentWnd.

pParentWnd
Wskaźnik do okna, który jest elementem nadrzędnym kontrolki.

Nid
Identyfikator okna podrzędnego kontrolki.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Użyj CreateEx zamiast opcji Utwórz, aby zastosować rozszerzone style systemu Windows określone przez WS_EX_ stylu rozszerzonego systemu Windows.

CStatusBarCtrl::CStatusBarCtrl

CStatusBarCtrl Tworzy obiekt.

CStatusBarCtrl();

CStatusBarCtrl::D rawItem

Wywoływana przez platformę, gdy zmienia się wizualny aspekt kontrolki paska stanu rysowania właściciela.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parametry

lpDrawItem, struktura
Długi wskaźnik do struktury DRAWITEMSTRUCT , która zawiera informacje o wymaganym typie rysunku.

Uwagi

Element itemAction członkowski DRAWITEMSTRUCT struktury definiuje akcję rysunku, która ma zostać wykonana.

Domyślnie ta funkcja składowa nic nie robi. Zastąpi tę funkcję składową, aby zaimplementować rysunek dla obiektu rysowania CStatusBarCtrl właściciela.

Aplikacja powinna przywrócić wszystkie obiekty interfejsu urządzenia graficznego (GDI) wybrane dla kontekstu wyświetlania podanego w lpDrawItemStruct przed zakończeniem tej funkcji składowej.

CStatusBarCtrl::GetBorders

Pobiera bieżące szerokości kontrolki paska stanu obramowania poziomego i pionowego oraz odstępu między prostokątami.

BOOL GetBorders(int* pBorders) const;

BOOL GetBorders(
    int& nHorz,
    int& nVert,
    int& nSpacing) const;

Parametry

pBorders
Adres tablicy całkowitej z trzema elementami. Pierwszy element otrzymuje szerokość obramowania poziomego, drugi otrzymuje szerokość obramowania pionowego, a trzeci otrzymuje szerokość obramowania między prostokątami.

nHorz
Odwołanie do liczby całkowitej, która odbiera szerokość obramowania poziomego.

nVert
Odwołanie do liczby całkowitej, która odbiera szerokość obramowania pionowego.

nSpacing
Odwołanie do liczby całkowitej, która odbiera szerokość obramowania między prostokątami.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie zero.

Uwagi

Te obramowania określają odstępy między zewnętrzną krawędzią kontrolki a prostokątami w kontrolce zawierającej tekst.

Przykład

RECT rectPane1;
VERIFY(m_wndSBC.GetRect(1, &rectPane1));

int borderArray[3];
VERIFY(m_wndSBC.GetBorders(borderArray));

int nHorz, nVert, nSpacing;
VERIFY(m_wndSBC.GetBorders(nHorz, nVert, nSpacing));

CStatusBarCtrl::GetIcon

Pobiera ikonę części (znanej również jako okienko) w bieżącej kontrolce paska stanu.

HICON GetIcon(int iPart) const;

Parametry

iPart
[in] Indeks na podstawie zera części zawierającej ikonę do pobrania. Jeśli ten parametr to -1, przyjmuje się, że pasek stanu jest paskiem stanu trybu prostego.

Wartość zwracana

Uchwyt do ikony, jeśli metoda powiodła się; w przeciwnym razie wartość NULL.

Uwagi

Ta metoda wysyła komunikat SB_GETICON opisany w zestawie Windows SDK.

Kontrolka paska stanu składa się z wiersza okienek wyjściowych tekstu, które są również nazywane częściami. Aby uzyskać więcej informacji na temat paska stanu, zobacz Implementacja paska stanu w MFC i Ustawianie trybu obiektu CStatusBarCtrl.

Przykład

Pierwszy przykład kodu definiuje zmienną , m_statusBarktóra jest używana do uzyskiwania dostępu do bieżącej kontrolki paska stanu. Ta zmienna jest używana w następnym przykładzie.

public:
CStatusBarCtrl m_statusBar;

Następny przykład kodu kopiuje ikonę do dwóch okienek bieżącego kontrolki paska stanu. We wcześniejszej sekcji przykładu kodu utworzyliśmy kontrolkę paska stanu z trzema okienkami, a następnie dodaliśmy ikonę do pierwszego okienka. Ten przykład pobiera ikonę z pierwszego okienka, a następnie dodaje ją do drugiego i trzeciego okienka.

// Get the icon from pane 1 and set it in panes 2 and 3.
HICON hIcon = m_statusBar.GetIcon(0);
m_statusBar.SetIcon(1, hIcon);
m_statusBar.SetIcon(2, hIcon);

CStatusBarCtrl::GetParts

Pobiera liczbę części w kontrolce paska stanu.

int GetParts(
    int nParts,
    int* pParts) const;

Parametry

nParts
Liczba części, dla których mają być pobierane współrzędne. Jeśli ten parametr jest większy niż liczba części w kontrolce, komunikat pobiera współrzędne tylko dla istniejących części.

PParts
Adres tablicy całkowitej o tej samej liczbie elementów co liczba części określonych przez nParts. Każdy element w tablicy otrzymuje współrzędną klienta prawej krawędzi odpowiadającej części. Jeśli element jest ustawiony na - 1, pozycja prawej krawędzi dla tej części rozciąga się na prawą krawędź paska stanu.

Wartość zwracana

Liczba części w kontrolce, jeśli się powiedzie, lub zero w przeciwnym razie.

Uwagi

Ta funkcja składowa pobiera również współrzędną prawej krawędzi podanej liczby części.

Przykład

int pParts[2];

int nParts = m_wndSBC.GetParts(2, pParts);

CStatusBarCtrl::GetRect

Pobiera prostokąt ograniczenia części w kontrolce paska stanu.

BOOL GetRect(
    int nPane,
    LPRECT lpRect) const;

Parametry

nPane
Indeks zerowy części, której prostokąt ograniczenia ma zostać pobrany.

lpRect
Adres struktury RECT odbierającej prostokąt ograniczenia.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie zero.

Przykład

CRect rectPane1;

VERIFY(m_wndSBC.GetRect(1, &rectPane1));

CStatusBarCtrl::GetText

Pobiera tekst z danej części kontrolki paska stanu.

CString GetText(
    int nPane,
    int* pType = NULL) const;

int GetText(
    LPCTSTR lpszText,
    int nPane,
    int* pType = NULL) const;

Parametry

lpszText
Adres buforu, który odbiera tekst. Ten parametr jest ciągiem zakończonym wartością null.

nPane
Indeks na podstawie zera części, z której ma być pobierany tekst.

typ pType
Wskaźnik do liczby całkowitej, która odbiera informacje o typie. Typ może być jedną z następujących wartości:

  • 0 Tekst jest rysowany z obramowaniem, które ma być wyświetlane niż płaszczyzna paska stanu.

  • SBT_NOBORDERS Tekst jest rysowany bez obramowań.

  • SBT_POPOUT Tekst jest rysowany z obramowaniem, które ma być wyświetlane wyżej niż płaszczyzna paska stanu.

  • SBT_OWNERDRAW Jeśli tekst ma typ rysunku SBT_OWNERDRAW, pType odbiera ten komunikat i zwraca wartość 32-bitową skojarzona z tekstem zamiast długości i typu operacji.

Wartość zwracana

Długość tekstu lub ciąg CString zawierający bieżący tekst.

Przykład

int nType;
TCHAR *pszPaneOneText;

pszPaneOneText = new TCHAR[m_wndSBC.GetTextLength(1, &nType) + 1];
int nTextLength = m_wndSBC.GetText(pszPaneOneText, 1, &nType);

switch (nType)
{
case 0:
   // Text is drawn with a border to appear lower than the
   // plane of the status bar
   break;
case SBT_NOBORDERS:
   // text is drawn without borders
   break;
case SBT_OWNERDRAW:
   // Text is drawn by the parent window
   break;
case SBT_POPOUT:
   // Text is drawn with a border to appear higher than the
   // plane of the status bar
   break;
}

delete pszPaneOneText;

CStatusBarCtrl::GetTextLength

Pobiera długość tekstu w postaci znaków z danej części kontrolki paska stanu.

int GetTextLength(
    int nPane,
    int* pType = NULL) const;

Parametry

nPane
Indeks na podstawie zera części, z której ma być pobierany tekst.

typ pType
Wskaźnik do liczby całkowitej, która odbiera informacje o typie. Typ może być jedną z następujących wartości:

  • 0 Tekst jest rysowany z obramowaniem, które ma być wyświetlane niż płaszczyzna paska stanu.

  • SBT_NOBORDERS Tekst jest rysowany bez obramowań.

  • SBT_OWNERDRAW Tekst jest rysowany przez okno nadrzędne.

  • SBT_POPOUT Tekst jest rysowany z obramowaniem, które ma być wyświetlane wyżej niż płaszczyzna paska stanu.

Wartość zwracana

Długość tekstu w postaci znaków.

Przykład

int nType;
int nLength = m_wndSBC.GetTextLength(0, &nType);

switch (nType)
{
case 0:
   // Text is drawn with a border to appear lower than the
   // plane of the status bar
   break;
case SBT_NOBORDERS:
   // text is drawn without borders
   break;
case SBT_OWNERDRAW:
   // Text is drawn by the parent window
   break;
case SBT_POPOUT:
   // Text is drawn with a border to appear higher than the
   // plane of the status bar
   break;
}

CStatusBarCtrl::GetTipText

Pobiera tekst etykietki narzędzia dla okienka na pasku stanu.

CString GetTipText(int nPane) const;

Parametry

nPane
Indeks zerowy okienka paska stanu do odbierania tekstu etykietki narzędzia.

Wartość zwracana

Obiekt CString zawierający tekst do użycia w etykietce narzędzia.

Uwagi

Ta funkcja składowa implementuje zachowanie komunikatu Win32 SB_GETTIPTEXT zgodnie z opisem w zestawie WINDOWS SDK.

Przykład

CString csPane0TipText = m_wndSBC.GetTipText(0);

CStatusBarCtrl::IsSimple

Sprawdza kontrolkę okna stanu, aby określić, czy jest w trybie prostym.

BOOL IsSimple() const;

Wartość zwracana

Niezerowe, jeśli kontrolka okna stanu jest w trybie prostym; w przeciwnym razie zero.

Uwagi

Ta funkcja składowa implementuje zachowanie komunikatu Win32 SB_ISSIMPLE zgodnie z opisem w zestawie Windows SDK.

CStatusBarCtrl::SetBkColor

Ustawia kolor tła na pasku stanu.

COLORREF SetBkColor(COLORREF cr);

Parametry

Cr
Wartość COLORREF określająca nowy kolor tła. Określ wartość CLR_DEFAULT, aby spowodować, że pasek stanu będzie używać domyślnego koloru tła.

Wartość zwracana

Wartość COLORREF reprezentująca poprzedni domyślny kolor tła.

Uwagi

Ta funkcja składowa implementuje zachowanie SB_SETBKCOLOR komunikatu Win32 zgodnie z opisem w zestawie WINDOWS SDK.

Przykład

m_wndSBC.SetBkColor(RGB(0, 0, 250));

HICON hIcon = AfxGetApp()->LoadIcon(IDI_PANE_0_ICON);
VERIFY(hIcon);
VERIFY(m_wndSBC.SetIcon(0, hIcon));

CStatusBarCtrl::SetIcon

Ustawia ikonę okienka na pasku stanu.

BOOL SetIcon(
    int nPane,
    HICON hIcon);

Parametry

nPane
Indeks oparty na zerach okienka, który otrzyma ikonę. Jeśli ten parametr to -1, przyjmuje się, że pasek stanu jest prostym paskiem stanu.

hIcon
Dojście do ikony, która ma zostać ustawiona. Jeśli ta wartość ma wartość NULL, ikona zostanie usunięta ze części.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie zero.

Uwagi

Ta funkcja składowa implementuje zachowanie SB_SETICON komunikatu Win32 zgodnie z opisem w zestawie WINDOWS SDK.

Przykład

Zobacz przykład CStatusBarCtrl ::SetBkColor.

CStatusBarCtrl::SetMinHeight

Ustawia minimalną wysokość obszaru rysunkowego kontrolki paska stanu.

void SetMinHeight(int nMin);

Parametry

nMin
Minimalna wysokość kontrolki w pikselach.

Uwagi

Minimalna wysokość to suma nMin i dwa razy większa szerokość w pikselach pionowego obramowania kontrolki paska stanu.

Przykład

m_wndSBC.SetMinHeight(40);

CStatusBarCtrl::SetParts

Ustawia liczbę części w kontrolce paska stanu i współrzędnych prawej krawędzi każdej części.

BOOL SetParts(
    int nParts,
    int* pWidths);

Parametry

nParts
Liczba części do ustawienia. Liczba części nie może być większa niż 255.

PWidths
Adres tablicy całkowitej o tej samej liczbie elementów co elementy określone przez nParts. Każdy element w tablicy określa położenie we współrzędnych klienta prawej krawędzi odpowiadającej części. Jeśli element to - 1, pozycja prawej krawędzi dla tej części rozciąga się na prawą krawędź kontrolki.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie zero.

Przykład

const int c_nParts = 4;
CRect rect;

m_wndSBC.GetClientRect(&rect);
int aWidths[c_nParts] = {rect.right - 300, rect.right - 200, rect.right - 100,
                         -1};

VERIFY(m_wndSBC.SetParts(c_nParts, aWidths));

CStatusBarCtrl::SetSimple

Określa, czy kontrolka paska stanu wyświetla prosty tekst, czy wyświetla wszystkie części sterujące ustawione przez poprzednie wywołanie setParts.

BOOL SetSimple(BOOL bSimple = TRUE);

Parametry

bSimple
[in] Flaga typu wyświetlanego. Jeśli ten parametr ma wartość TRUE, kontrolka wyświetla prosty tekst; jeśli ma wartość FALSE, wyświetla wiele części.

Wartość zwracana

Zawsze zwraca wartość 0.

Uwagi

Jeśli aplikacja zmieni kontrolkę paska stanu z prostej na prostą lub odwrotnie, system natychmiast ponownie wyrysuje kontrolkę.

CStatusBarCtrl::SetText

Ustawia tekst w danej części kontrolki paska stanu.

BOOL SetText(
    LPCTSTR lpszText,
    int nPane,
    int nType);

Parametry

lpszText
Adres ciągu o wartości null, który określa tekst do ustawienia. Jeśli parametr nType jest SBT_OWNERDRAW, lpszText reprezentuje 32 bity danych.

nPane
Indeks na podstawie zera części do ustawienia. Jeśli ta wartość to 255, przyjmuje się, że kontrolka paska stanu jest prostą kontrolką mającą tylko jedną część.

nType
Typ operacji rysowania. Zobacz SB_SETTEXT komunikat , aby uzyskać listę możliwych wartości.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie zero.

Uwagi

Komunikat unieważnia część kontrolki, która uległa zmianie, powodując wyświetlenie nowego tekstu po następnym odebraniu komunikatu WM_PAINT kontrolki.

Przykład

VERIFY(m_wndSBC.SetText(_T("Text For Pane 1"), 1, 0));

CStatusBarCtrl::SetTipText

Ustawia tekst etykietki narzędzia dla okienka na pasku stanu.

void SetTipText(
    int nPane,
    LPCTSTR pszTipText);

Parametry

nPane
Indeks zerowy okienka paska stanu do odbierania tekstu etykietki narzędzia.

pszTipText
Wskaźnik do ciągu zawierającego tekst etykietki narzędzia.

Uwagi

Ta funkcja składowa implementuje zachowanie komunikatu Win32 SB_SETTIPTEXT zgodnie z opisem w zestawie Windows SDK.

Przykład

m_wndSBC.SetTipText(0, _T("This is Pane 0"));

Zobacz też

Klasa CWnd
Wykres hierarchii
Klasa CToolBarCtrl