TN031: Kontrola paski

Uwaga ta zawiera opis klas pasek sterowania w MFC: ogólne CControlBar, CStatusBar, CToolBar, CDialogBari CDockBar.

CControlBar

ControlBar jest CWnd-pochodnych, klasa:

Paski formant obsługuje dodatkowe style:

Klasy pochodzące od CControlBar dostarczyć bardziej interesujące implementacje:

Wszystkie obiekty i windows kontroli pasek będzie okien podrzędnych niektóre okna ramki nadrzędnej. Są zazwyczaj dodawane jako element równorzędny do obszaru klienckiego ramki (na przykład klienta MDI lub widoku). Ważne jest Identyfikatorem okno podrzędne pasek sterowania. Domyślny układ pasek sterowania działa tylko dla kontroli paski z identyfikatorami w zakresie od AFX_IDW_CONTROLBAR_FIRST do AFX_IDW_CONTROLBAR_LAST. Należy zauważyć, że chociaż istnieje szereg kontroli 256 pasek identyfikatory, pierwszy 32 tych pasek sterowania identyfikatory są specjalne, ponieważ bezpośrednio są obsługiwane przez architekturę Podgląd wydruku.

Klasa CControlBar zawiera standardową implementacją dla

C++ kontroli pasek obiekty zazwyczaj zostanie osadzony jako członkowie CFrameWnd klasy i będzie można oczyścić, gdy nadrzędnego HWND i obiektu są niszczone. Jeśli trzeba przydzielić obiekt paska sterowania na stercie, można po prostu zestawu replik m_bAutoDestruct do Prawda aby dokonać kontroli pasek "Usuń to", kiedy niszczony jest HWND.

Waż&nenbsp;  Jeśli utworzysz własne CControlBar-pochodną klasy, a nie przy użyciu jednego z MFC firmy pochodnych klasy, takie jak CStatusBar, CToolBarlub CDialogBar, trzeba będzie zestawu replik danych m_dwStyle . Można to zrobić w zastępowanie Tworzenie:

 / / CMyControlBar pochodzi z CControlBar
BOOL CMyControlBar::Create (CWnd * pParentWnd, DWORD dwStyle UI&NT nID.)
{
 nbsp; m_dwStyle = dwStyle;

.
   .
   .
}

Pasek sterowania układu algorytm

Algorytm układ paska sterowania jest bardzo proste. Okno ramek wysyła wiadomość WM_SIZEPARENT wszystkie dzieci w zakresie pasek sterowania. Wraz z tą wiadomością wskaźnik do obiektu nadrzędnego klienta prostokąta jest przekazywany. Ta wiadomość jest wysyłana do dzieci w kolejności. Dzieci pasek sterowania użyć tych informacji, umieść sami i zmniejszyć rozmiar obszaru klienckiego obiektu nadrzędnego. Końcowe prostokąt, który wyjechał do obszaru klienckiego normalnych (mniej kontroli pasków) jest używana do pozycji okna głównego klienta (zazwyczaj klienta, wyświetlania lub podziału okna MDI).

Aby uzyskać więcej szczegółów, zobacz CWnd::RepositionBars i CFrameWnd::RecalcLayout.

Prywatne Windows wiadomości MFC, łącznie z WM_SIZEPARENT, są udokumentowane w technicznej 24 Uwaga.

CStatusBar

Pasek stanu jest pasek sterowania, który ma wiersz tekstu wyjściowego okienek. Istnieją dwa typowe sposoby używania okienka wyjściowy tekst:

Czcionki na pasku stanu jest punkt 10 "MS Sans Serif" (dyktowana przez Podręcznik projektowania aplikacji interfejsu systemu Windows lub czcionki mappers najlepsze dopasowanie 10-punktową czcionkę proporcjonalną szwajcarski). W niektórych wersjach systemu Windows, takich jak edycja japońska i Windows 4.0 czcionki zaznaczone są różne.

Kolory używane w pasku stanu są również zgodne z recomendation Podręcznik projektowania aplikacji interfejsu systemu Windows. Te kolory nie są kodowane twarde i są zmieniane dynamicznie w reakcji dostosowania użytkownika za pośrednictwem Panelu sterowania.

Element Wartości kolorów systemu Windows Domyślnie RGB
Tło paska stanu COLOR_BTNFACE RGB (192, 192, 192)
Tekst paska stanu COLOR_BTNTEXT RGB (000, 000 000.)
Pasek u góry/lewe krawędzie stanu COLOR_BTNHIGHLIGHT RGB (255, 255, 255)
Stan paska robotów/prawej krawędzi COLOR_BTNSHADOW RGB (128, 128, 128)

CCmdUI wsparcie dla CStatusBar

Sposób, w jaki wskaźniki zwykle są aktualizowane jest poprzez mechanizm ON_UPDATE_COMMAND_UI . Na czas bezczynności na pasku stanu będzie wywoływać program ON_UPDATE_COMMAND_UI o identyfikatorze ciąg okienka wskaźnik.

Obsługa ON_UPDATE_COMMAND_UI można wywołać:

Odsyłamy do klasy CStatusBar w Klasie Library Reference szczegółowe informacje na temat CStatusBar tworzenie i dostosowywanie interfejsów API. Większość dostosowywanie paski stanu należy przeprowadzić przed na pasku stanu jest początkowo widoczne.

Na pasku stanu obsługuje tylko jednego okienka stretchy, zazwyczaj pierwszego okienka. Rozmiar okienka jest naprawdę minimalnej wielkości. Jeśli na pasku stanu jest większy niż minimalny rozmiar wszystkich okienkach, wszelkie dodatkowe szerokość będzie miał do okienka stretchy. Domyślną aplikację z pasek stanu ma wyrównany do prawej wskaźników do WPR, NUM i SCRL, ponieważ pierwszy okienko jest stretchy.

CToolBar

Pasek narzędzi jest pasek sterowania z wiersza przycisków mapy bitowej, który może zawierać separatorów. Obsługiwane są dwa style przycisków: przyciski pola wyboru i przyciski. Radia grupy funkcji można być zbudowany z przycisków pole wyboru i ON_UPDATE_COMMAND_UI.

Wszystkie przyciski bitmapy na pasku narzędzi są pobierane z jednej bitmapy. Tę mapę bitową musi zawierać jeden obraz lub glifów dla każdego przycisku. Zazwyczaj Kolejność glifów obrazów w bitmapy jest kolejności, w której będą wywodzić się na ekranie. (To można zmienić za pomocą dostosowania interfejsy API).

Każdy przycisk musi być taki sam rozmiar. Wartością domyślną jest standardowa 24 x 22 piksele. Każdy obraz/glifów musi być taki sam rozmiar i musi być side-by-side bitmapy. Domyślny rozmiar obrazu/glifów jest 16 x 15 pikseli. W związku z tym na pasku narzędzi z przyciskami 10 (przy użyciu standardowych rozmiarów), trzeba bitmapę, 160 pikseli szerokości i 15 pikseli.

Każdy przycisk ma tylko jeden obraz/glifów. Przycisk różnych państw i style (na przykład wciśnięty, w górę, w dół, wyłączony, wyłączony w nieokreślony) algorithmically są generowane z jednego obrazu/glifów. Każdy kolor mapy bitowej lub DIB może służyć w teorii. Algorytmu generowania inny przycisk Państwa działa najlepiej, jeśli oryginalny obraz jest odcieni szarości. Spójrz na przyciski pasków narzędzi Standardowy i clipart przycisk paska narzędzi, świadczone w próbce ogólnej MFC CLIPART przykłady.

Kolory używane w pasku narzędzi są również zgodne z zaleceniem Podręcznik projektowania aplikacji interfejsu systemu Windows. Te kolory nie są kodowane twarde i są zmieniane dynamicznie w reakcji dostosowania użytkownika za pośrednictwem Panelu sterowania.

Element Wartości kolorów systemu Windows Domyślnie RGB
Tło paska narzędzi COLOR_BTNFACE RGB(192,192,192)
Pasek narzędzi przyciski u góry/lewe krawędzie COLOR_BTNHIGHLIGHT RGB(255,255,255)
Pasek narzędzi przyciski robotów/prawej krawędzi COLOR_BTNSHADOW RGB(128,128,128)

Ponadto przyciski paska narzędzi bitmapowych są ponownie pokolorowane, tak jakby były standardowych formantów przycisk systemu Windows. Ten ponownego kolorowania występuje, gdy bitmapy jest ładowany z zasobu i w odpowiedzi na zmiany systemu kolorów w reakcji dostosowania użytkownika za pośrednictwem Panelu sterowania. Następujące kolory mapy bitowej narzędzi będzie automatycznie sprawdzać, dlatego powinno być używane z ostrożnością. Jeśli nie chcesz mieć fragment sieci bitmapy ponownie pokolorowane, należy użyć koloru, który ściśle zbliżona z mapowane wartości RGB. Mapowanie odbywa się na podstawie dokładnych wartości RGB.

Wartość RGB Mapowanego dynamicznie wartość koloru
RGB (000, 000 000.) COLOR_BTNTEXT
RGB (128, 128, 128) COLOR_BTNSHADOW
RGB (192, 192, 192) COLOR_BTNFACE
RGB (255, 255, 255) COLOR_BTNHIGHLIGHT

Odsyłamy do klasy CToolBar Klasy Library Reference szczegóły dotyczące CToolBar tworzenie i dostosowywanie interfejsów API. Większość dostosowywanie pasków narzędzi należy przeprowadzić przed pasek narzędzi jest początkowo widoczne.

Dostosowywanie API umożliwia dostosowanie przycisk identyfikatory, style, szerokość odstępu i który obraz/glifów jest używany dla jakiego przycisku. Domyślnie trzeba użyć tych interfejsów API.

CCmdUI wsparcie dla CToolBar

Sposób, w jaki zawsze aktualizowane są przyciski paska narzędzi jest poprzez mechanizm ON_UPDATE_COMMAND_UI . Na czas bezczynności pasek narzędzi będzie wywoływać program ON_UPDATE_COMMAND_UI z Identyfikatorem polecenia tego przycisku. ON_UPDATE_COMMAND_UI nie jest wywoływana dla separatorów, ale jest ona wywoływana dla przycisków i przyciski, pola wyboru.

Obsługa ON_UPDATE_COMMAND_UI można wywołać:

Pole wyboru przycisków znajdują się przyciski pola wyboru "AUTO"; oznacza to, że kiedy użytkownik naciśnie je natychmiast będą one zmienić Państwo. Sprawdzany jest stan w dół lub depresji. Istnieje sposób interfejsu użytkownika wbudowanej zmienić przycisk Stan "nieokreślone"; które muszą być wykonywane przez kod.

Dostosowywanie API pozwoli zmienić stan przycisku paska narzędzi danego, najlepiej powinien zmieniać tych państw do obsługi ON_UPDATE_COMMAND_UI dla polecenia, który reprezentuje przycisk na pasku narzędzi. Należy pamiętać, że bezczynności przetwarzania zmieni stan przycisków paska narzędzi z obsługi ON_UPDATE_COMMAND_UI , więc zmiany w tych państwach poprzez SetButtonStyle ginące po następnym bezczynności.

Przyciski paska narzędzi będzie wysyłać WM_COMMAND jak normalne przyciski lub elementy menu i są zazwyczaj obsługiwane przez moduł obsługi ON_COMMAND w tej samej klasie, która zapewnia obsługi ON_UPDATE_COMMAND_UI.

Istnieją cztery stylów przycisków paska narzędzi (wartości TBBS_) używane do wyświetlania Państwa:

Sześć oficjalnych style przycisk Podręcznik projektowania aplikacji interfejsu systemu Windows są reprezentowane przez następujące wartości TBBS:

CDialogBar

Pasek okna dialogowego jest pasek sterowania, który zawiera standardowych formantów systemu Windows. Działa podobnie jak okno dialogowe zawiera formanty i obsługuje TAB między nimi. Również działa podobnie jak okna dialogowego korzysta szablon okna dialogowego do reprezentowania na pasku.

CDialogBar jest używany na pasku narzędzi Podgląd wydruku, która zawiera formanty standardowe pushbutton.

Za pomocą CDialogBar przypomina korzystanie z CFormView. Należy zdefiniować szablon okno dialogowe na pasku okna dialogowego i usunąć wszystkie style z wyjątkiem WS_CHILD. Uwaga Aby oknie nie mogą być widoczne.

Powiadomienia kontroli na CDialogBar zostanie wysłany do macierzysty bar kontrolnych (podobnie jak przyciski paska narzędzi).

CCmdUI wsparcie dla CDialogBar

Okno dialo&gowe pasek przyciski powinny zostać uaktualnione poprzez mechanizm obsługi ON_UPDATE_COMMAND_UI . W czasie bezczynności, pasku okna dialogowego będzie wywoływać program ON_UPDATE_COMMAND_UI z Identyfikatorem polecenia wszystkie przyciski, które mają ID gt; = 0x8000 (oznacza to, że w zakres identyfikatorów polecenia).

Obsługa ON_UPDATE_COMMAND_UI można wywołać:

Dostosowanie może odbywać się za pośrednictwem Menedżera okien normy API.

Uwagi techniczne przez liczbę |nbsp; Uwagi techniczne według kategorii

Index