Megosztás a következőn keresztül:


Lapos görgetősávok

A Microsoft Internet Explorer 4.0 bevezette a lapos görgetősávok nevű új vizuális technológiát. Funkcionálisan a lapos görgetősávok ugyanúgy viselkednek, mint a normál görgetősávok. A különbség az, hogy a megjelenésüket a szokásos görgetősávoknál nagyobb mértékben testre szabhatja.

Az alábbi ábrán egy lapos görgetősávot tartalmazó ablak látható.

képernyőfelvétel egy lapos görgetősávot tartalmazó ablakról

Jegyzet

A lapos görgetősávokat Comctl32.dll 4.71-5.82-s verziók támogatják. Comctl32.dll 6.00-s és újabb verziók nem támogatják a lapos görgetősávokat.

 

Lapos görgetősávok használata

Ez a szakasz azt ismerteti, hogyan implementálhat lapos görgetősávokat az alkalmazásban.

Mielőtt hozzákezdene

A görgetősáv-függvények használatához meg kell adnia a Commctrl.h-t a forrásfájlokban, és csatolnia kell a Comctl32.lib-et.

Vízszintes görgetősávok hozzáadása egy ablakhoz

Ha lapos görgetősávokat szeretne hozzáadni egy ablakhoz, hívja meg InitializeFlatSB, és adja át a fogópontot az ablaknak. Ahelyett, hogy a normál görgetősávfüggvényeket használva módosítanák a görgetősávokat, a megfelelő FlatSB_XXX függvényt kell használnia. A görgetősáv-függvények a görgetési információk, a tartomány és a pozíció beállítására és beolvasására szolgálnak. Ha az ablakhoz nem inicializálták a lapos görgetősávokat, a lapos görgetősáv API a megfelelő szabványos függvényekre halasztódik, ha vannak ilyenek. Ez lehetővé teszi a lapos görgetősávok be- és kikapcsolását feltételes kód írása nélkül.

Mivel előfordulhat, hogy egy alkalmazás egyéni metrikákat állított be a lapos görgetősávokhoz, a rendszer nem frissül automatikusan a rendszermetrikák változásakor. Amikor a rendszer görgetősávjának metrikái változnak, a rendszer egy WM_SETTINGCHANGE üzenetet küld, amelynek wParam beállítása SPI_SETNONCLIENTMETRICS. Ha a lapos görgetősávokat az új rendszermetrikákra szeretné frissíteni, az alkalmazásoknak kezelnie kell ezt az üzenetet, és explicit módon módosítaniuk kell a lapos görgetősáv metrikafüggő tulajdonságait.

A görgetősáv tulajdonságainak frissítéséhez használja a FlatSB_SetScrollProp. Az alábbi kódrészlet egy lapos görgetősáv metrikafüggő tulajdonságait az aktuális rendszerértékek szerint módosítja.

void FlatSB_UpdateMetrics(HWND hWnd)
{
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXVSCROLL, GetSystemMetrics(SM_CXVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHSCROLL, GetSystemMetrics(SM_CXHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVSCROLL, GetSystemMetrics(SM_CYVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYHSCROLL, GetSystemMetrics(SM_CYHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHTHUMB, GetSystemMetrics(SM_CXHTHUMB), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVTHUMB, GetSystemMetrics(SM_CYVTHUMB), TRUE);
}

Lapos görgetősávok javítása

FlatSB_SetScrollProp lehetővé teszi az egysíkú görgetősávok módosítását az ablak megjelenésének testreszabásához. Függőleges görgetősávok esetén módosíthatja a sáv szélességét és az irány nyilak magasságát. Vízszintes görgetősávok esetén módosíthatja a sáv magasságát és az irány nyilak szélességét. A vízszintes és a függőleges görgetősáv háttérszínét is módosíthatja.

FlatSB_SetScrollProp lehetővé teszi a lapos görgetősávok megjelenítésének testreszabását is. A WSB_PROP_VSTYLE és WSB_PROP_HSTYLE tulajdonságainak módosításával beállíthatja a használni kívánt görgetősáv típusát. Három stílus érhető el.

Stílus Leírás
FSB_ENCARTA_MODE Megjelenik egy szabványos, lapos görgetősáv. Amikor az egér egy iránygomb vagy a hüvelykujj felett mozog, a görgetősáv ezen része térhatásúként jelenik meg.
FSB_FLAT_MODE Megjelenik egy szabványos, lapos görgetősáv. Amikor az egér egy iránygomb vagy a hüvelykujj felett mozog, a görgetősáv ezen része fordított színekben jelenik meg.
FSB_REGULAR_MODE Megjelenik egy normál, nem felfújt görgetősáv. A program nem alkalmaz speciális vizuális effektusokat.

 

Lapos görgetősávok eltávolítása

Ha el szeretné távolítani a lapos görgetősávokat az ablakból, hívja meg a UninitializeFlatSB függvényt, és adja át a fogópontot az ablaknak. Ez a függvény csak futásidőben távolítja el a lapos görgetősávokat az ablakból. Nem kell meghívnia ezt a függvényt, ha az ablak megsemmisül.