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
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 Create
metodę , 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_statusBar
któ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"));