Megosztás:


Tudnivalók a Up-Down vezérlőkről

A felfelé mutató vezérlőelemek olyan nyílgombok, amelyekre a felhasználó rákattinthat egy érték növeléséhez vagy csökkenéséhez, például egy görgetési pozícióhoz vagy egy társvezérlőben megjelenített számhoz (más néven pajtásablakhoz).

A felhasználó számára a fel-le vezérlő és a párosított ablak gyakran egyetlen vezérlőnek tűnik. Megadhatja, hogy egy fel-le vezérlő automatikusan elhelyezze magát a társ ablak mellett, és automatikusan állítsa a társ ablak feliratát az aktuális pozícióra. Használhat például egy felfelé irányuló vezérlőt szerkesztési vezérlővel, amellyel numerikus bemenetet kér a felhasználótól. Az alábbi ábrán egy fel-le léptetővezérlő látható, amelynek a szerkesztő vezérlő a párosított ablak, egy olyan kombináció, amelyet néha tárcsavezérlőnek is neveznek.

képernyőfelvételen egy rövid, széles téglalap alakú vezérlő látható, a jobb szélen felfelé és lefelé mutató nyilakkal

Ebben a szakaszban az alábbi témaköröket tárgyaljuk.

Up-Down vezérlőstílusok

Az ablakstílusok használatával módosíthatja a felfelé mutató vezérlőelemek jellemzőit, például azt, hogy hogyan helyezi el magát a haver ablakához képest, beállítja-e a haver ablakának szövegét, és feldolgozza-e a FEL és a LE nyílbillentyűket.

A UDS_ALIGNLEFT vagy UDS_ALIGNRIGHT stílust tartalmazó fel-le ható vezérlő a kísérő ablak bal vagy jobb széléhez igazodik. A pajtás ablakának szélessége csökken a le-le vezérlő szélességének megfelelően.

A UDS_SETBUDDYINT stílust tartalmazó fel-le vezérlőelem mindig beállítja a társablak címkéjét, amikor az aktuális pozíció megváltozik. A vezérlőelem egy tizedesjegy minden három számjegye közé beszúr egy ezres elválasztójelet, kivéve, ha a UDS_NOTHOUSANDS stílus meg van adva. Ha a társ ablak egy listamező, akkor a fel-le nyíl vezérlő az aktuális kijelölést állítja be a felirat helyett.

Megadhatja a UDS_ARROWKEYS stílust, hogy billentyűzetfelületet biztosítson egy lefelé irányuló vezérlőhöz. Ha ez a stílus meg van adva, a vezérlő feldolgozza a fel- és le nyílbillentyűket. A vezérlő a páros ablakot is alosztályozza, hogy feldolgozhassa ezeket a gombokat, amikor a páros ablak van fókuszban.

Ha lefelé irányuló vezérlőelemet használ a vízszintes görgetéshez, megadhatja a UDS_HORZ stílust. Ez a stílus azt eredményezi, hogy a felfelé mutató vezérlő nyilak a felfelé és lefelé mutató nyilak helyett balra és jobbra mutatnak.

Alapértelmezés szerint az aktuális pozíció nem változik, ha a felhasználó megkísérli növelni vagy csökkenteni azt a maximális vagy minimális értéknél. Ezt a viselkedést a UDS_WRAP stílussal módosíthatja, így a pozíció az ellenkező végletre átlép. Ha például túllépi a felső korlátot, visszaállítja a pozíciót az alsó korlátra.

Pozíció és gyorsulás

A felfelé felfelé vezérlő létrehozása után üzenetek küldésével módosíthatja a vezérlő aktuális pozícióját, minimális pozícióját és maximális pozícióját. Módosíthatja azt a radixbázist is, amellyel megjelenítheti az aktuális pozíciót a pajtásablakban, valamint azt, hogy az aktuális pozíció milyen sebességgel változik, amikor a felfelé vagy lefelé mutató nyílra kattint.

Ha le szeretné kérni egy felfelé felfelé vezérlő aktuális pozícióját, használja a UDM_GETPOS üzenetet. Olyan fel-le vezérlők esetében, amelyek tartalmaznak egy társablakot, az aktuális pozíció a társablak feliratában található szám. Mivel a felirat módosulhatott (például a felhasználó szerkesztette egy szerkesztési vezérlő szövegét), a lefelé irányuló vezérlő lekéri az aktuális feliratot, és ennek megfelelően frissíti az aktuális pozícióját.

A pajtásablak felirata lehet decimális vagy hexadecimális betűsor attól függően, hogy a számnövelő és -csökkentő vezérlőelem rádixbázisa 10-es vagy 16-os alapú. A radix alap beállításához használja a UDM_SETBASE üzenetet, és kérje le a radix bázist a UDM_GETBASE üzenet használatával.

A UDM_SETPOS üzenet beállítja a társkapcsolati ablak aktuális pozícióját. Vegye figyelembe, hogy a görgetősávtól eltérően a lefelé mutató vezérlőelemek automatikusan megváltoztatják az aktuális pozíciót, amikor a fel- és le nyílra kattintanak. Az alkalmazásoknak ezért nem kell beállítaniuk az aktuális pozíciót a WM_VSCROLL vagy WM_HSCROLL üzenet feldolgozásakor.

Az UDM_SETRANGE üzenet használatával módosíthatja a le-le vezérlőelemek minimális és maximális pozícióját. A maximális pozíció kisebb lehet a minimálisnál, és ebben az esetben a felfelé mutató nyíl gombra kattintva csökkenti az aktuális pozíciót. Másképpen fogalmazva, a felfelé azt jelenti, hogy a maximális pozíció felé haladunk. A lefelé irányuló vezérlőelemek minimális és maximális pozíciójának lekéréséhez használja a UDM_GETRANGE üzenetet.

A felfelé mutató vezérlő gyorsulásának beállításával szabályozhatja, hogy a pozíció milyen sebességgel változik, amikor a felhasználó lenyom egy nyílgombot. A gyorsulást UDACCEL struktúrák tömbje határozza meg. Minden struktúra meghatározza az időintervallumot és az egységek számát, amellyel az intervallum végén növekményt vagy csökkenést kell végezni. A gyorsítás beállításához használja a UDM_SETACCEL üzenetet. A gyorsítási információk lekéréséhez használja a UDM_GETACCEL üzenetet.

Az üzenetek feldolgozását vezérlő alapértelmezett Up-Down

Ez a szakasz azokat a Windows-üzeneteket ismerteti, amelyeket egy felfelé felfelé vezérlő dolgoz fel.

Üzenet Elvégzett feldolgozás
WM_CREATE Lefoglalja és inicializálja a privát adatstruktúrát, és annak címét ablakhoz kapcsolódó adatként menti.
WM_DESTROY Felszabadítja WM_CREATE feldolgozás során lefoglalt adatokat.
WM_ENABLE Érvényteleníti az ablakot.
WM_KEYDOWN A FEL vagy a LE nyílbillentyű esetén módosítja az aktuális pozíciót.
WM_KEYUP Befejezi a pozícióváltoztatást.
WM_LBUTTONDOWN Rögzíti az egeret. Ha a társított ablak szerkesztőmező vagy listamező, akkor a fókusz a társított ablakra kerül. Ha az egér a fel- vagy le gomb felett van, elkezdi módosítani a pozíciót, és beállít egy időzítőt.
WM_LBUTTONUP Befejezi a pozícióváltoztatást, és felszabadítja az egérrögzítést, ha a felfelé mutató vezérlő rögzítette az egeret. Ha a kísérőablak szerkesztőmező, akkor kijelöli a szerkesztőmezőben lévő összes szöveget.
WM_PAINT A fel-le vezérlőt festi. Ha a wParam paraméter nem NULL, a vezérlő feltételezi, hogy az érték egy HDC, és azzal az eszközkörnyezettel fest.
WM_TIMER Módosítja az aktuális pozíciót, ha az egér egy gomb fölött van lenyomva, és a megfelelő időköz eltelt.