Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas tworzenia nakładającego się okna, okienka podręcznego lub okna podrzędnego można dodać standardowe paski przewijania przy użyciu funkcji CreateWindowEx, określając style WS_HSCROLL, WS_VSCROLL lub oba.
Co musisz wiedzieć
Technologie
Warunki wstępne
- C/C++
- Programowanie interfejsu użytkownika systemu Windows
Instrukcje
Tworzenie paska przewijania
Poniższy przykład tworzy okno ze standardowymi poziomymi i pionowymi paskami przewijania.
hwnd = CreateWindowEx(
0, // no extended styles
g_szWindowClass, // global string containing name of window class
g_szTitle, // global string containing title bar text
WS_OVERLAPPEDWINDOW |
WS_HSCROLL | WS_VSCROLL, // window styles
CW_USEDEFAULT, // default horizontal position
CW_USEDEFAULT, // default vertical position
CW_USEDEFAULT, // default width
CW_USEDEFAULT, // default height
(HWND) NULL, // no parent for overlapped windows
(HMENU) NULL, // use the window class menu
g_hInst, // global instance handle
(PVOID) NULL // pointer not needed
);
Aby przetworzyć komunikaty paska przewijania dla tych pasków przewijania, należy uwzględnić odpowiedni kod w procedurze okna głównego.
Możesz użyć funkcji CreateWindowEx, aby utworzyć pasek przewijania, określając klasę okna SCROLLBAR. Spowoduje to utworzenie poziomego lub pionowego paska przewijania w zależności od tego, czy SBS_HORZ czy SBS_VERT jest określony jako styl okna. Można również określić rozmiar paska przewijania i jego położenie względem okna nadrzędnego.
Poniższy przykład tworzy poziomy pasek przewijania umieszczony wzdłuż dolnej części obszaru klienta okna nadrzędnego.
// Description:
// Creates a horizontal scroll bar along the bottom of the parent
// window's area.
// Parameters:
// hwndParent - handle to the parent window.
// sbHeight - height, in pixels, of the scroll bar.
// Returns:
// The handle to the scroll bar.
HWND CreateAHorizontalScrollBar(HWND hwndParent, int sbHeight)
{
RECT rect;
// Get the dimensions of the parent window's client area;
if (!GetClientRect(hwndParent, &rect))
return NULL;
// Create the scroll bar.
return (CreateWindowEx(
0, // no extended styles
L"SCROLLBAR", // scroll bar control class
(PTSTR) NULL, // no window text
WS_CHILD | WS_VISIBLE // window styles
| SBS_HORZ, // horizontal scroll bar style
rect.left, // horizontal position
rect.bottom - sbHeight, // vertical position
rect.right, // width of the scroll bar
sbHeight, // height of the scroll bar
hwndParent, // handle to main window
(HMENU) NULL, // no menu
g_hInst, // instance owning this window
(PVOID) NULL // pointer not needed
));
}
Tematy pokrewne