Udostępnij za pośrednictwem


TN031: Paski formantu

[!UWAGA]

Następujące Uwaga techniczna została zaktualizowana, ponieważ najpierw została uwzględniona w dokumentacji online.W rezultacie niektóre procedur i tematów może być nieaktualne lub nieprawidłowe.Najnowsze informacje zaleca się wyszukać temat zainteresowanie Indeks dokumentacji online.

Uwaga ta opisuje klasy pasek sterowania w MFC: Ogólne CControlBar, CStatusBar, CToolBar, CDialogBar, i CDockBar.

CControlBar

A ControlBar jest CWnd-uzyskane klasy, która:

  • Jest wyrównany do góry lub u dołu okna ramki.

  • Może zawierać elementy podrzędne, które są albo kontrole oparte na HWND (na przykład CDialogBar) lub nie-HWND podstawie elementów (na przykład CToolBar, CStatusBar).

Paski formant obsługuje dodatkowe style:

  • CBRS_TOP(Domyślnie) przypiąć pasek sterowania do góry.

  • CBRS_BOTTOMPIN pasek sterowania do dołu.

  • CBRS_NOALIGNNie zmienia położenie pasek sterowania, gdy zmienia rozmiar obiektu nadrzędnego.

Pochodną klasy CControlBar dostarczyć bardziej interesujące implementacji:

  • CStatusBarPasek stanu, elementy są okienka pasek stanu, zawierających tekst.

  • CToolBarPasek narzędzi, elementy są przyciski bitmapy wyrównane w wierszu.

  • CDialogBarRamki pasek narzędzi zawierający system windows standardowych formantów (utworzonych z okna dialogowego zasobu szablonu).

  • CDockBar a generalized miejsce dokowania dla innych CControlBar pochodzących z obiektów.Członkowskich określonych funkcji i zmiennych, które są dostępne w tej klasie mogą ulec zmianie w przyszłych wydaniach.

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

CControlBar Klasy daje standardowej implementacji na:

  • Wyrównywanie pasek sterowania do góry, dołu lub bocznego ramki.

  • Przydzielanie kontroli tablice towaru.

  • Wspieranie realizacji klas pochodnych.

Obiekty bar kontroli C++ zazwyczaj zostanie osadzony jako członkowie CFrameWnd klasy i będzie można oczyścić kiedy nadrzędnej HWND i obiektu są niszczone.Jeśli trzeba przydzielić obiektu pasek sterowania na stercie, można po prostu ustawić m_bAutoDestruct członka TRUE Aby pasek sterowania "usunąć to" podczas HWND jest niszczony.

[!UWAGA]

Jeśli możesz tworzyć własne CControlBar-uzyskane klasy, a nie przy użyciu jednego z jego MFC uzyskane klas, takie jak CStatusBar, CToolBar, lub CDialogBar, musisz ustawić m_dwStyle elementu danych.Można to zrobić w override z Tworzenie:

// CMyControlBar is derived from CControlBar
BOOL CMyControlBar::Create( CWnd* pParentWnd, DWORD dwStyle, UINT nID )
{
   m_dwStyle = dwStyle;

   .
   .
   .
}

Pasek sterowania układu algorytm

Algorytm układ pasek sterowania jest bardzo proste.Okno ramek wysyła komunikat WM_SIZEPARENT do wszystkich obiektów podrzędnych w zakresie pasek sterowania.Wraz z ten komunikat jest przekazywany wskaźnik do obiektu nadrzędnego klienta prostokąt.Wiadomość ta jest wysyłana do dzieci w kolejności Z.Dzieci pasek sterowania użyć tych informacji do samych pozycji i zmniejszyć rozmiar obszaru klienta nadrzędnego.Końcowe prostokąt, który pozostaje dla obszaru klienckiego normalnego (mniej pasków) jest używana do pozycji okna głównego klienta (zazwyczaj klienta, widok lub podziału okna MDI).

Zobacz CWnd::RepositionBars i CFrameWnd::RecalcLayout więcej szczegółów.

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

CStatusBar

Pasek stanu jest pasek sterowania wiersz tekstu wyjściowego okienek.Istnieją dwa typowe sposoby użycia tekstu wyjściowego okienek:

  • Jako wiersz wiadomości

    (na przykład standardowe menu Pomoc wiersz wiadomości).Są one zazwyczaj dostępne przez 0 systemem indeksowane

  • Jako wskaźniki stanu

    (na przykład WPR, NUM i SCRL wskaźniki).Te są zazwyczaj dostępne identyfikator ciągiem i polecenia.

Czcionka na pasku stanu jest punkt 10 MS Sans Serif (podyktowane Podręcznik projektowania aplikacji interfejsu systemu Windows lub czcionki mappers najlepsze dopasowanie szwajcarski Czcionka proporcjonalna 10 punktów).W niektórych wersjach systemu Windows, takich jak Edycja japońska czcionki zaznaczone są różne.

Kolory używane w pasku stanu są również zgodne z zaleceniem Podręcznik projektowania aplikacji interfejsu systemu Windows.Te kolory nie są zakodowane twarde i są zmieniane dynamicznie w odpowiedzi na dostosowywanie użytkowników w Panelu sterowania.

Element

Wartości kolorów systemu Windows

Domyślne RGB

Tło paska stanu

COLOR_BTNFACE

RGB (192, 192, 192)

Tekst paska stanu

COLOR_BTNTEXT

RGB (000, 000 000.)

W pasku górnym i lewym krawędzie stanu

COLOR_BTNHIGHLIGHT

RGB (255, 255, 255)

Stan paska bot/prawej krawędzi

COLOR_BTNSHADOW

RGB (128, 128, 128)

CCmdUI obsługa CStatusBar

Sposób wskaźniki są zwykle aktualizowane jest poprzez ON_UPDATE_COMMAND_UI mechanizmu.Na czas bezczynności, będzie wywoływać pasek stanu ON_UPDATE_COMMAND_UI obsługi o identyfikatorze ciąg okienka wskaźnika.

ON_UPDATE_COMMAND_UI Można wywołać obsługi:

  • Włącz: Aby włączyć lub wyłączyć okienko.Okienko wyłączone wygląda dokładnie tak samo jak włączone okienko, ale tekst jest niewidoczny (to znaczy wyłącza wskaźnik tekst).

  • SetText: Aby zmienić tekst.Należy zachować ostrożność, jeśli chcesz ponieważ okienka automatycznie nie zmieni rozmiar.

Odnoszą się do klasy CStatusBar w Odwołanie do biblioteki klas szczegółowe informacje na temat CStatusBar tworzenie i dostosowywanie interfejsów API.Większość Dostosowywanie pasków stanu powinno być wykonane przed pasek stanu jest początkowo widoczne.

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

CToolBar

Pasek narzędzi jest pasek sterowania z wiersza przycisków bitmap, które mogą obejmować separatory.Obsługiwane są dwa style przycisków: przyciski pola wyboru i przyciski.Mogą być wbudowane radio grupy funkcji z pola wyboru, przyciski i ON_UPDATE_COMMAND_UI.

Wszystkie przyciski na pasku narzędzi bitmapy są pobierane z jednej bitmapy.Ta mapa bitowa musi zawierać jeden obraz lub glifów dla każdego przycisku.Zazwyczaj kolejność obrazów/glify bitmapa jest takiej samej kolejności, będą one pobierane na ekranie.(To można zmienić za pomocą dostosowania interfejsy API).

Każdy przycisk musi być taki sam rozmiar.Wartość domyślna to standardowy, 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.Dlatego dla narzędzi z przyciskami 10 (przy użyciu standardowych rozmiarów) należy 160 pikseli szerokości i 15 pikseli bitmapy.

Każdy przycisk ma tylko jeden obraz/glifów.Przycisk różnych Państw i style (na przykład naciśnięcia up, down, wyłączony, wyłączony w dół, nieokreślone) algorytmicznie są generowane na podstawie jednego obrazu/glifów.Teoretycznie można każdy kolor mapy bitowej lub DIB.Algorytm generowania inny przycisk Państwa works najlepiej, jeśli odcienie szarości oryginalnego obrazu.Spójrz na przyciski paska narzędzi Standardowy i clipart przycisk paska narzędzi 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ą zakodowane twarde i są zmieniane dynamicznie w odpowiedzi na dostosowywanie użytkowników w Panelu sterowania.

Element

Wartości kolorów systemu Windows

Domyślne RGB

Tło paska narzędzi

COLOR_BTNFACE

RGB(192,192,192)

Krawędzie górnym i lewym przyciski paska narzędzi

COLOR_BTNHIGHLIGHT

RGB(255,255,255)

Przyciski paska narzędzi dla bot/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 podczas ładowania bitmapy z zasobu i w odpowiedzi na zmianę kolorów systemowych w odpowiedzi na dostosowywanie użytkowników w Panelu sterowania.Następujące kolory mapy bitowej narzędzi można sprawdzać automatycznie, więc powinno być używane z ostrożnością.Jeśli nie chcesz mieć część sieci bitmapy ponownie pokolorowane, użyj ściśle zbliżona jeden zmapowane wartości RGB koloru.Mapowanie odbywa się w oparciu o dokładne wartości RGB.

Wartość RGB

Wartość KOLORU mapowanego dynamicznie

RGB (000, 000 000.)

COLOR_BTNTEXT

RGB (128, 128, 128)

COLOR_BTNSHADOW

RGB (192, 192, 192)

COLOR_BTNFACE

RGB (255, 255, 255)

COLOR_BTNHIGHLIGHT

Odnoszą się do klasy CToolBarOdwołanie do biblioteki klas szczegółowe informacje na temat CToolBar tworzenie i dostosowywanie interfejsów API.Większość Dostosowywanie pasków narzędzi powinno być wykonane przed pasek narzędzi jest początkowo widoczne.

Dostosowywanie, interfejsów API można dostosować przycisku identyfikatory, style, szerokość odstępu i obraz/glif, który jest używany jako przycisk jakie.Domyślnie nie trzeba użyć tych interfejsów API.

CCmdUI obsługa CToolBar

Sposób przycisków na pasku narzędzi są aktualizowane zawsze jest poprzez ON_UPDATE_COMMAND_UI mechanizmu.Na czas bezczynności, pasek narzędzi będzie wywoływać ON_UPDATE_COMMAND_UI obsługi o identyfikatorze polecenia przycisku.ON_UPDATE_COMMAND_UInie jest wywoływana dla separatorów, ale nazywa się przyciski i pola wyboru, przyciski.

ON_UPDATE_COMMAND_UI Można wywołać obsługi:

  • Włącz: Aby włączyć lub wyłączyć przycisk.To działa równie przycisków pola wyboru i przyciski.

  • SetCheck: Aby ustawić stanu zaznaczenia przycisku.To wywołanie do przycisku paska narzędzi będzie włączyć do przycisku pole wyboru.SetCheckprzyjmuje parametr, który może być 0 (nie jest zaznaczone), 1 (opcja jest zaznaczona) lub 2 (nieokreślona)

  • SetRadio: Skróconego dla SetCheck.

Pole wyboru, przyciski są przyciski pola wyboru "AUTO"; oznacza to gdy użytkownik naciska się je natychmiast będą one zmiany stanu.Sprawdzany jest stan w dół lub depresji.Nie ma możliwości interfejsu użytkownika wbudowanej zmienić przycisk w stan "nieokreślone"; które muszą być wykonywane przez kod.

Dostosowywanie API pozwolą na zmianę stanu przycisku na pasku narzędzi danego, najlepiej należy zmieniać tych państw w ON_UPDATE_COMMAND_UI obsługi dla polecenia, przycisku paska narzędzi reprezentuje.Należy pamiętać, że przetwarzanie bezczynnego zmieni stan przycisków paska narzędzi z ON_UPDATE_COMMAND_UI obsługi, aby zmiany w tych państwach poprzez SetButtonStyle może zostać utracone po następnej bezczynności.

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

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

  • TBBS_CHECKED: pole wyboru jest zaznaczone obecnie (dół).

  • TBBS_INDETERMINATE: pole wyboru jest aktualnie nieokreślone.

  • TBBS_DISABLED: Przycisk jest aktualnie wyłączona.

  • TBBS_PRESSED: Aktualnie naciśnięcia przycisku.

Sześć urzędowym stylów przycisków Podręcznik projektowania aplikacji interfejsu systemu Windows są reprezentowane przez następujące wartości TBBS:

  • Up = 0

  • Mouse Down = TBBS_PRESSED (| inny styl)

  • Wyłączone = TBBS_DISABLED

  • Dół = TBBS_CHECKED

  • Dół wyłączone = TBBS_CHECKED | TBBS_DISABLED

  • Nieokreślony = TBBS_INDETERMINATE

CDialogBar

Okno dialogowe pasek jest pasek sterowania, zawierający standardowych formantów systemu Windows.To działa jak okno dialogowe zawiera formanty, i obsługuje tabulacji między nimi.To również działa jak okno dialogowe, ponieważ korzysta z okna dialogowego szablonu do reprezentowania na pasku.

A CDialogBar jest używana dla narzędzi Podgląd wydruku, który zawiera formanty standardowe pushbutton.

Za pomocą CDialogBar przypomina korzystanie z CFormView.Należy zdefiniować szablon okna dialogowego paska okno dialogowe i usunąć wszystkie style, z wyjątkiem WS_CHILD.Należy zauważyć, że okno dialogowe nie muszą być widoczne.

Powiadomienia kontroli dla CDialogBar zostaną wysłane do nadrzędnego pasek sterowania (podobnie jak przyciski paska narzędzi).

CCmdUI obsługa CDialogBar

Okno dialogowe przyciski paska powinny być uaktualnione przez ON_UPDATE_COMMAND_UI mechanizmu obsługi.W czasie bezczynności, pasek okno dialogowe będzie wywoływać ON_UPDATE_COMMAND_UI obsługi o identyfikatorze polecenia, przyciski, które mają identyfikator > = 0x8000 (to znaczy w zakresie identyfikatory poleceń).

ON_UPDATE_COMMAND_UI Można wywołać obsługi:

  • Włącz: Aby włączyć lub wyłączyć przycisk.

  • SetText: Aby zmienić tekst przycisku.

Dostosowania można wykonać za pomocą standardowego okna Menedżera interfejsów API.

Zobacz też

Inne zasoby

Uwagi techniczne przez liczbę

Uwagi techniczne według kategorii