Klasa CControlBar

Klasa bazowa klas cStatusBar, CToolBar, CDialogBar, CReBar i COleResizeBar.

Składnia

class CControlBar : public CWnd

Członkowie

Konstruktory chronione

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

Metody publiczne

Nazwa/nazwisko opis
CControlBar::CalcDynamicLayout Zwraca rozmiar dynamicznego paska sterowania jako obiektu CSize .
CControlBar::CalcFixedLayout Zwraca rozmiar paska sterowania jako obiekt CSize .
CControlBar::CalcInsideRect Zwraca bieżące wymiary powierzchni paska sterowania; w tym obramowania.
CControlBar::D oPaint Renderuje obramowania i uchwyt paska sterowania.
CControlBar::D rawBorders Renderuje obramowania paska sterowania.
CControlBar::D rawGripper Renderuje uchwyt paska sterowania.
CControlBar::EnableDocking Umożliwia, aby pasek sterowania był zadokowany lub przestawny.
CControlBar::GetBarStyle Pobiera ustawienia stylu paska sterowania.
CControlBar::GetBorders Pobiera wartości obramowania paska sterowania.
CControlBar::GetCount Zwraca liczbę elementów innych niż HWND na pasku sterowania.
CControlBar::GetDockingFrame Zwraca wskaźnik do ramki, w której jest zadokowany pasek sterowania.
CControlBar::IsFloating Zwraca wartość niezerową, jeśli dany pasek sterowania jest przestawny.
CControlBar::OnUpdateCmdUI Wywołuje obsługę poleceń interfejsu użytkownika.
CControlBar::SetBarStyle Modyfikuje ustawienia stylu paska sterowania.
CControlBar::SetBorders Ustawia wartości obramowania paska sterowania.
CControlBar::SetInPlaceOwner Zmienia lokalnego właściciela paska sterowania.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CControlBar::m_bAutoDelete Jeśli wartość jest niezerowa, obiekt CControlBar zostanie usunięty, gdy pasek sterowania systemu Windows zostanie zniszczony.
CControlBar::m_pInPlaceOwner Lokalny właściciel paska sterowania.

Uwagi

Pasek sterowania to okno, które jest zazwyczaj wyrównane do lewej lub prawej strony okna ramki. Może zawierać elementy podrzędne, które są kontrolkami opartymi na HWND, które są oknami, które generują komunikaty systemu Windows i odpowiadają na nie lub elementy inne niż HWND, które nie są windows i są zarządzane przez kod aplikacji lub kod struktury. Pola listy i kontrolki edycji to przykłady kontrolek opartych na HWND; Okienka paska stanu i przyciski mapy bitowej to przykłady kontrolek opartych na HWND.

Okienka paska sterowania to zazwyczaj okienka podrzędne dla nadrzędnej ramki okna i zazwyczaj elementy równorzędne dla widoku klienta lub klienta MDI ramki okna. Obiekt CControlBar używa informacji dotyczących prostokąta klienta okna nadrzędnego, w celu ustalenia własnej pozycji. Następnie informuje okno nadrzędne, ile miejsca pozostaje nieprzydzielonego, w obszarze klienta okna nadrzędnego.

Aby uzyskać więcej informacji na temat funkcji CControlBar, zobacz:

Hierarchia dziedziczenia

Cobject

Ccmdtarget

Cwnd

CControlBar

Wymagania

Nagłówek: afxext.h

CControlBar::CalcDynamicLayout

Struktura wywołuje tę funkcję składową, aby obliczyć wymiary dynamicznego paska narzędzi.

virtual CSize CalcDynamicLayout(
    int nLength,
    DWORD nMode);

Parametry

nLength
Żądany wymiar paska sterowania, poziomy lub pionowy, w zależności od kolumny dwMode.

nMode
Następujące wstępnie zdefiniowane flagi służą do określania wysokości i szerokości dynamicznego paska sterowania. Użyj operatora bitowego OR (|), aby połączyć flagi.

Flagi trybu układu Znaczenie
LM_STRETCH Wskazuje, czy pasek sterowania powinien być rozciągnięty do rozmiaru ramki. Ustaw, jeśli pasek nie jest paskiem dokowania (nie jest dostępny do zadokowania). Nie ustawiono, gdy pasek jest zadokowany lub pływający (dostępny do zadokowania). W przypadku ustawienia LM_STRETCH ignoruje nLength i zwraca wymiary na podstawie stanu LM_HORZ. LM_STRETCH działa podobnie do parametru bStretch używanego w elemencie CalcFixedLayout. Zobacz tę funkcję składową, aby uzyskać więcej informacji na temat relacji między rozciąganiem i orientacją.
LM_HORZ Wskazuje, że pasek jest w poziomie lub w pionie. Ustaw, jeśli pasek jest zorientowany w poziomie, a jeśli jest zorientowany w pionie, nie jest ustawiony. LM_HORZ działa podobnie do parametru bHorz używanego w elemencie CalcFixedLayout. Zobacz tę funkcję składową, aby uzyskać więcej informacji na temat relacji między rozciąganiem i orientacją.
LM_MRUWIDTH Ostatnio używana szerokość dynamiczna. Ignoruje parametr nLength i używa zapamiętanej ostatnio używanej szerokości.
LM_HORZDOCK Wymiary zadokowane w poziomie. Ignoruje parametr nLength i zwraca rozmiar dynamiczny o największej szerokości.
LM_VERTDOCK Wymiary zadokowane w pionie. Ignoruje parametr nLength i zwraca rozmiar dynamiczny o największej wysokości.
LM_LENGTHY Ustaw, jeśli nLength wskazuje wysokość (kierunek Y) zamiast szerokości.
LM_COMMIT Resetuje LM_MRUWIDTH do bieżącej szerokości przestawnego paska sterowania.

Wartość zwracana

Rozmiar paska sterowania w pikselach obiektu CSize .

Uwagi

Zastąpij tę funkcję składową, aby zapewnić własny układ dynamiczny w klasach pochodnych z CControlBarklasy . Klasy MFC pochodzące z CControlBarklasy , takie jak CToolbar, zastępują tę funkcję składową i zapewniają własną implementację.

CControlBar::CalcFixedLayout

Wywołaj tę funkcję składową, aby obliczyć rozmiar poziomy paska sterowania.

virtual CSize CalcFixedLayout(
    BOOL bStretch,
    BOOL bHorz);

Parametry

bStretch
Wskazuje, czy słupek powinien być rozciągnięty do rozmiaru ramki. Parametr bStretch jest niezerowy, gdy pasek nie jest paskiem dokowania (niedostępnym do dokowania) i jest 0, gdy jest zadokowany lub pływający (dostępny do zadokowania).

Bhorz
Wskazuje, że pasek jest w poziomie lub w pionie. Parametr bHorz jest niezerowy, jeśli słupek jest zorientowany poziomo i jest 0, jeśli jest zorientowany pionowo.

Wartość zwracana

Rozmiar paska sterowania w pikselach CSize obiektu.

Uwagi

Paski sterowania, takie jak paski narzędzi, mogą rozciągać się w poziomie lub w pionie, aby pomieścić przyciski zawarte na pasku sterowania.

Jeśli wartość bStretch ma wartość TRUE, rozciągnij wymiar wzdłuż orientacji dostarczonej przez bHorz. Innymi słowy, jeśli bHorz ma wartość FALSE, pasek sterowania jest rozciągnięty w pionie. Jeśli wartość bStretch ma wartość FALSE, nie występuje żaden odcinek. W poniższej tabeli przedstawiono możliwe permutacje oraz wynikowe style paska sterowania bStretch i bHorz.

bStretch Bhorz Rozciąganie Orientacja Docking/Not docking (Zadokowanie/Brak zadokowania)
PRAWDA PRAWDA Rozciągnięcie w poziomie Orientacja pozioma Brak zadokowania
PRAWDA FAŁSZ Rozciągnięcie w pionie Orientacja pionowa Brak zadokowania
FAŁSZ PRAWDA Brak dostępnego rozciągania Orientacja pozioma Dokowania
FAŁSZ FAŁSZ Brak dostępnego rozciągania Orientacja pionowa Dokowania

CControlBar::CalcInsideRect

Struktura wywołuje tę funkcję, aby obliczyć obszar klienta paska sterowania.

virtual void CalcInsideRect(
    CRect& rect,
    BOOL bHorz) const;

Parametry

Rect
Zawiera bieżące wymiary paska sterowania; w tym granice.

Bhorz
Wskazuje, że pasek jest w poziomie lub w pionie. Parametr bHorz jest niezerowy, jeśli słupek jest zorientowany poziomo i jest 0, jeśli jest zorientowany pionowo.

Uwagi

Ta funkcja jest wywoływana przed malowanie paska sterowania.

Zastąpi tę funkcję, aby dostosować renderowanie obramowań i paska uchwytu paska sterowania.

CControlBar::CControlBar

CControlBar Tworzy obiekt.

CControlBar();

CControlBar::D oPaint

Wywoływana przez platformę w celu renderowania obramowań i paska uchwytu paska sterowania.

virtual void DoPaint(CDC* pDC);

Parametry

Pdc
Wskazuje kontekst urządzenia, który ma być używany do renderowania obramowań i uchwytu paska sterowania.

Uwagi

Zastąpij tę funkcję, aby dostosować zachowanie rysunku paska sterowania.

Inną metodą dostosowywania jest zastąpienie DrawBorders funkcji i DrawGripper i dodanie niestandardowego kodu rysunku dla obramowań i uchwytu. Ponieważ te metody są wywoływane DoPaint przez metodę domyślnąDoPaint, przesłonięcia nie są potrzebne.

CControlBar::D rawBorders

Wywoływana przez platformę w celu renderowania obramowań paska sterowania.

virtual void DrawBorders(
    CDC* pDC,
    CRect& rect);

Parametry

Pdc
Wskazuje kontekst urządzenia, który ma być używany do renderowania obramowań paska sterowania.

Rect
CRect Obiekt zawierający wymiary paska sterowania.

Uwagi

Zastąpi tę funkcję, aby dostosować wygląd obramowań paska sterowania.

CControlBar::D rawGripper

Wywoływana przez strukturę w celu renderowania uchwytu paska sterowania.

virtual void DrawGripper(
    CDC* pDC,
    const CRect& rect);

Parametry

Pdc
Wskazuje kontekst urządzenia, który ma być używany do renderowania uchwytu paska sterowania.

Rect
CRect Obiekt zawierający wymiary uchwytu paska sterowania.

Uwagi

Zastąpij tę funkcję, aby dostosować wygląd uchwytu paska sterowania.

CControlBar::EnableDocking

Wywołaj tę funkcję, aby umożliwić zadokowanie paska sterowania.

void EnableDocking(DWORD dwDockStyle);

Parametry

dwDockStyle
Określa, czy pasek sterowania obsługuje dokowanie i boki okna nadrzędnego, do którego można zadokować pasek sterowania, jeśli jest obsługiwany. Może to być co najmniej jeden z następujących elementów:

  • CBRS_ALIGN_TOP Umożliwia dokowanie w górnej części obszaru klienta.

  • CBRS_ALIGN_BOTTOM Umożliwia dokowanie w dolnej części obszaru klienta.

  • CBRS_ALIGN_LEFT Umożliwia dokowanie po lewej stronie obszaru klienta.

  • CBRS_ALIGN_RIGHT Umożliwia dokowanie po prawej stronie obszaru klienta.

  • CBRS_ALIGN_ANY Umożliwia dokowanie po dowolnej stronie obszaru klienta.

  • CBRS_FLOAT_MULTI Umożliwia upłynięcie wielu pasków sterowania w jednym mini-ramowym oknie.

Jeśli wartość 0 (oznacza to, że nie ma flag), pasek sterowania nie zostanie zadokowany.

Uwagi

Określone boki muszą być zgodne z jedną z boków włączoną do zadokowania w oknie ramowym docelowym lub pasek sterowania nie może być zadokowany do tego okna ramowego.

CControlBar::GetBarStyle

Wywołaj tę funkcję, aby określić, które ustawienia CBRS_ (style paska sterowania) są obecnie ustawione dla paska sterowania.

DWORD GetBarStyle();

Wartość zwracana

Bieżące ustawienia CBRS_ (style paska sterowania) dla paska sterowania. Aby uzyskać pełną listę dostępnych stylów, zobacz CControlBarBar::SetBarStyle .

Uwagi

Nie obsługuje stylów WS_ (stylu okna).

CControlBar::GetBorders

Zwraca bieżące wartości obramowania paska sterowania.

CRect GetBorders() const;

Wartość zwracana

CRect Obiekt, który zawiera bieżącą szerokość (w pikselach) po każdej stronie obiektu paska sterowania. Na przykład wartość lewego elementu członkowskiego obiektu CRect jest szerokością obramowania po lewej stronie.

CControlBar::GetCount

Zwraca liczbę elementów innych niż HWND w CControlBar obiekcie.

int GetCount() const;

Wartość zwracana

Liczba elementów innych niż HWND obiektu CControlBar . Ta funkcja zwraca wartość 0 dla obiektu CDialogBar .

Uwagi

Typ elementu zależy od obiektu pochodnego: okienek dla obiektów CStatusBar oraz przycisków i separatorów obiektów CToolBar .

CControlBar::GetDockingFrame

Wywołaj tę funkcję składową, aby uzyskać wskaźnik do bieżącego okna ramki, do którego jest zadokowany pasek sterowania.

CFrameWnd* GetDockingFrame() const;

Wartość zwracana

Wskaźnik do okna ramki, jeśli się powiedzie; w przeciwnym razie wartość NULL.

Jeśli pasek sterowania nie jest zadokowany do okna ramki (czyli jeśli pasek sterowania jest przestawny), ta funkcja zwróci wskaźnik do nadrzędnego obiektu CMiniFrameWnd.

Uwagi

Aby uzyskać więcej informacji na temat zadokowalnych pasków kontrolek, zobacz CControlBar::EnableDocking i CFrameWnd::D ockControlBar.

CControlBar::IsFloating

Wywołaj tę funkcję składową, aby określić, czy pasek sterowania jest przestawny, czy zadokowany.

BOOL IsFloating() const;

Wartość zwracana

Nonzero, jeśli pasek kontrolny jest zmienny; w przeciwnym razie 0.

Uwagi

Aby zmienić stan paska sterowania z zadokowanego na przestawny, wywołaj element CFrameWnd::FloatControlBar.

CControlBar::m_bAutoDelete

Jeśli wartość jest niezerowa, obiekt CControlBar zostanie usunięty, gdy pasek sterowania systemu Windows zostanie zniszczony.

BOOL m_bAutoDelete;

Uwagi

m_bAutoDelete jest zmienną publiczną typu BOOL.

Obiekt paska sterowania jest zwykle osadzony w obiekcie okna ramowego. W takim przypadku wartość m_bAutoDelete wynosi 0, ponieważ osadzony obiekt paska sterowania jest niszczony, gdy okno ramki zostanie zniszczone.

Ustaw tę zmienną na wartość niezerową, jeśli przydzielisz CControlBar obiekt na stercie i nie planujesz wywołać metody delete.

CControlBar::m_pInPlaceOwner

Lokalny właściciel paska sterowania.

CWnd* m_pInPlaceOwner;

CControlBar::OnUpdateCmdUI

Ta funkcja składowa jest wywoływana przez strukturę w celu zaktualizowania stanu paska narzędzi lub paska stanu.

virtual void OnUpdateCmdUI(
    CFrameWnd* pTarget,
    BOOL bDisableIfNoHndler) = 0;

Parametry

pTarget
Wskazuje główne okno ramki aplikacji. Ten wskaźnik jest używany do routingu komunikatów aktualizacji.

bDisableIfNoHndler
Flaga wskazująca, czy kontrolka, która nie ma programu obsługi aktualizacji, powinna być automatycznie wyświetlana jako wyłączona.

Uwagi

Aby zaktualizować pojedynczy przycisk lub okienko, użyj makra ON_UPDATE_COMMAND_UI na mapie komunikatów, aby odpowiednio ustawić procedurę obsługi aktualizacji. Aby uzyskać więcej informacji na temat korzystania z tego makra, zobacz ON_UPDATE_COMMAND_UI .

OnUpdateCmdUI program jest wywoływany przez platformę, gdy aplikacja jest bezczynna. Okno ramki do zaktualizowania musi być oknem podrzędnym, przynajmniej pośrednio, widocznym oknem ramowym. OnUpdateCmdUI jest zaawansowanym przesłonięciem.

CControlBar::SetBarStyle

Wywołaj tę funkcję, aby ustawić żądane style CBRS_ dla paska sterowania.

void SetBarStyle(DWORD dwStyle);

Parametry

Dwstyle
Żądane style paska sterowania. Może to być co najmniej jeden z następujących elementów:

  • CBRS_ALIGN_TOP Umożliwia zadokowanie paska sterowania do góry obszaru klienta okna ramowego.

  • CBRS_ALIGN_BOTTOM Umożliwia zadokowanie paska sterowania do dołu obszaru klienta okna ramowego.

  • CBRS_ALIGN_LEFT Umożliwia zadokowanie paska sterowania po lewej stronie obszaru klienta okna ramowego.

  • CBRS_ALIGN_RIGHT Umożliwia zadokowanie paska sterowania po prawej stronie obszaru klienta okna ramowego.

  • CBRS_ALIGN_ANY Umożliwia zadokowanie paska sterowania do dowolnej strony obszaru klienta okna ramowego.

  • CBRS_BORDER_TOP Powoduje narysowanie obramowania na górnej krawędzi paska sterowania, gdy będzie widoczne.

  • CBRS_BORDER_BOTTOM Powoduje narysowanie obramowania na dolnej krawędzi paska sterowania, gdy będzie ono widoczne.

  • CBRS_BORDER_LEFT Powoduje narysowanie obramowania na lewej krawędzi paska sterowania, gdy będzie widoczne.

  • CBRS_BORDER_RIGHT Powoduje narysowanie obramowania na prawej krawędzi paska sterowania, gdy będzie ono widoczne.

  • CBRS_FLOAT_MULTI Umożliwia upłynięcie wielu pasków sterowania w jednym mini-ramowym oknie.

  • CBRS_TOOLTIPS Powoduje wyświetlanie wskazówek narzędzia dla paska sterowania.

  • CBRS_FLYBY Powoduje, że tekst wiadomości jest aktualizowany w tym samym czasie co wskazówki dotyczące narzędzi.

  • CBRS_GRIPPER Powoduje chwytak, podobny do tego, który był używany na pasmach w CReBar obiekcie, do rysowania dla dowolnej CControlBarklasy pochodnej.

Uwagi

Nie ma wpływu na ustawienia WS_ (styl okna).

CControlBar::SetBorders

Wywołaj tę funkcję, aby ustawić rozmiar obramowań paska sterowania.

void SetBorders(
    int cxLeft = 0,
    int cyTop = 0,
    int cxRight = 0,
    int cyBottom = 0);

void SetBorders(LPCRECT lpRect);

Parametry

cxLeft
Szerokość (w pikselach) lewego obramowania paska sterowania.

cyTop
Wysokość (w pikselach) górnego obramowania paska sterowania.

cxRight
Szerokość (w pikselach) prawego obramowania paska sterowania.

cyBottom
Wysokość (w pikselach) dolnego obramowania paska sterowania.

Lprect
Wskaźnik do obiektu CRect, który zawiera bieżącą szerokość (w pikselach) każdego obramowania obiektu paska sterowania.

Przykład

Poniższy przykład kodu ustawia górny i dolny obramowanie paska sterowania na 5 pikseli, a lewe i prawe obramowania na 2 piksele:

CControlBar &m_myControlBar = m_Rebar;
m_myControlBar.SetBorders(2, 5, 2, 5);

CControlBar::SetInPlaceOwner

Zmienia lokalnego właściciela paska sterowania.

void SetInPlaceOwner(CWnd* pWnd);

Parametry

Pwnd
Wskaźnik do CWnd obiektu.

Uwagi

Zobacz też

Przykładowe klawisze CTRLBARS MFC
Klasa CWnd
Wykres hierarchii
Klasa CToolBar
Klasa CDialogBar
Klasa CStatusBar
Klasa CReBar