Kombinált lista funkciói
Ez a dokumentum a kombinált lista funkcióit ismerteti. További információkért tekintse meg a következő témaköröket:
-
Speciális funkciók
- címtárlisták
- listaelemekhez társított adatok
- Kiterjesztett felhasználói felület
- Cue Banners
- Kombinált lista értesítései
- kombinált lista alapértelmezett viselkedési
Speciális funkciók
Vannak speciális célú üzenetek és függvények, amelyek lehetővé teszik, hogy az alkalmazások megjeleníthessék a címtárak listáját a kombinált listában, adatokat társíthassanak a kombinált lista listaelemeivel, és módosíthassák a legördülő lista vagy legördülő lista billentyűzetfelületét.
- címtárlisták
- listaelemekhez társított adatok
- Kiterjesztett felhasználói felület
- Cue Banners
Címtárlisták
Az alkalmazások hozzáadhatják a fájlok vagy alkönyvtárak nevét egy kombinált listához a CB_DIR üzenet elküldésével. Az üzenet wParam paramétere határozza meg a hozzáadni kívánt fájlok attribútumait, az lParam paraméter pedig a fájl specifikációját meghatározó szöveges sztringre mutató mutató.
A DlgDirListComboBox függvénnyel lecserélheti a párbeszédpanelen lévő kombinált lista tartalmát. A függvény kitölti a kombinált listát a megadott feltételkészletnek megfelelő meghajtók, könyvtárak és fájlok nevével. A DlgDirSelectComboBoxEx függvény egy DlgDirListComboBoxáltal inicializált kombinált listában kéri le az aktuális kijelölést. Ezek a függvények lehetővé teszik, hogy a felhasználó úgy válasszon ki egy meghajtót, könyvtárat vagy fájlt egy kombinált listából, hogy nem írja be a fájl helyét és nevét.
A DlgDirListComboBox és DlgDirSelectComboBoxEx függvények és a CB_DIR üzenet hasonló a DlgDirList és DlgDirSelectEx függvényekhez, valamint a listamezőkhöz használt LB_DIR üzenethez.
Listaelemekhez társított adatok
Az alkalmazások adatokat társíthatnak a kombinált lista listaelemeivel. A CB_SETITEMDATA üzenet egy DWORD értéket társít egy listaelemhez, és a CB_GETITEMDATA lekéri a listaelemhez társított értéket.
A Tulajdonos által rajzolt kombinált lista létrehozása példa elemadatokkal társít egy állandót egy legördülő lista minden eleméhez. Egy ilyen egyedi érték azonosítja az egyes elemeket a rendezés helyétől függetlenül.
Más alkalmazások elemadatokkal társíthatnak egy leírót vagy mutatót egy listaelemhez. Ha igen, az alkalmazás feldolgozhat egy WM_DELETEITEM üzenetet a megadott objektum törléséhez vagy felszabadításához a listaelem törlésekor.
A kiterjesztett felhasználói felület
A legördülő lista és a legördülő lista támogatja a kiterjesztett felhasználói felületnevű alternatív billentyűzetfelületet. Alapértelmezés szerint az F4 billentyű megnyitja vagy bezárja a listát, a LE nyíl pedig módosítja az aktuális kijelölést. A kiterjesztett felhasználói felülettel rendelkező kombinált listában azonban az F4 billentyű le van tiltva, és a LE nyílbillentyű lenyomásával megnyílik a legördülő lista. Ezenkívül az egérkerék, amely általában végiggörget a lista elemein, nem rendelkezik semmilyen funkcióval, ha a kiterjesztett felhasználói felület be van állítva.
A kombinált lista felhasználói felületének kiválasztásához az alkalmazás elküldheti a CB_SETEXTENDEDUI üzenetet a kombinált listába. A wParam paraméter TRUE értéke lehetővé teszi a kiterjesztett felhasználói felületet; egy HAMIS érték állítja be az alapértelmezett felhasználói felületet. Annak megállapításához, hogy a kombinált lista a kiterjesztett felhasználói felületet használja-e, az alkalmazás elküldheti a CB_GETEXTENDEDUI üzenetet a kombinált listára.
Cue Banners
A gombos transzparensek a szerkesztési vezérlők és kombinált listák új funkciója. A cue banner célja, hogy egy tippet adjon a felhasználónak a szerkesztési vezérlő vagy kombinált lista céljára. Az alábbi képernyőképen egy szerkesztési vezérlő látható a "Keresés" szöveggel.
A szöveg akkor jelenik meg, ha egy szerkesztési vezérlő nem rendelkezik szövegekkel, vagy ha a kombinált lista nem rendelkezik kijelöléssel. Amikor a felhasználó szöveget ír be a szerkesztési vezérlőbe, vagy kijelöl egy kombinált listában, a jelszalag eltűnik. Alapértelmezés szerint a cue szalagcím is eltűnik, amikor a szerkesztési vezérlő vagy a kombinált lista fókuszt kap.
Kombinált lista értesítései
A kombinált listákból érkező üzeneteket a rendszer értesítési kódként küldi el WM_COMMAND üzenetek formájában. Az értesítési kódot a wParam paraméter magas szava tárolja, és egy alkalmazás feldolgozhatja a következő kombinált lista értesítési kódjait.
Értesítési kód | Leírás |
---|---|
CBN_CLOSEUP | Azt jelzi, hogy egy legördülő lista vagy legördülő lista közel áll a bezáródáshoz. |
CBN_DBLCLK | Azt jelzi, hogy a felhasználó duplán kattintott egy listaelemre egy egyszerű kombinált listában. |
CBN_DROPDOWN | Azt jelzi, hogy egy legördülő lista vagy legördülő lista éppen megnyílik. |
CBN_EDITCHANGE | Azt jelzi, hogy a felhasználó módosította a szöveget egy egyszerű vagy legördülő lista szerkesztési vezérlőjében. Ezt az értesítési kódot küldi el, miután a módosított szöveg megjelenik. |
CBN_EDITUPDATE | Azt jelzi, hogy a felhasználó módosította a szöveget egy egyszerű vagy legördülő lista szerkesztési vezérlőjében. Ezt az értesítési kódot a rendszer küldi el, mielőtt a módosított szöveg megjelenik. |
CBN_ERRSPACE | Azt jelzi, hogy a kombinált lista nem tud elegendő memóriát lefoglalni egy kérés végrehajtásához, például listaelem hozzáadásához. |
CBN_KILLFOCUS | Azt jelzi, hogy a kombinált lista elveszíti a bemeneti fókuszt. |
CBN_SELCHANGE | Azt jelzi, hogy az aktuális kijelölés megváltozott. |
CBN_SELENDCANCEL | Azt jelzi, hogy a legördülő listában megadott kijelölést figyelmen kívül kell hagyni. |
CBN_SELENDOK | Azt jelzi, hogy a kijelölt legördülő listát el kell fogadni, amíg az el lett vetve. |
CBN_SETFOCUS | Azt jelzi, hogy a kombinált lista megkapta a bemeneti fókuszt. |
Alapértelmezett kombinált lista viselkedése
Ez az alábbi táblázat az előre definiált COMBOBOX osztályablak-eljárás által kezelt üzeneteket ismerteti.
Üzenet | Leírás |
---|---|
CB_ADDSTRING | Egy listaelem hozzáadásához LB_ADDSTRING üzenetet küld a listaablakba. |
CB_DELETESTRING | Egy listaelem törléséhez LB_DELETESTRING üzenetet küld a listaablakba. |
CB_DIR | Hozzáadja a megadott attribútumoknak és elérési útnak megfelelő fájlneveket a listához. |
CB_FINDSTRING | LB_FINDSTRING üzenetet küld a listaablakba. Ez az üzenet a megadott szöveggel kezdődő első listaelem indexét adja vissza. |
CB_FINDSTRINGEXACT | LB_FINDSTRING üzenetet küld a listaablakba. Ez az üzenet az első listaelem indexét adja vissza, amely pontosan megfelel a megadott szövegnek. |
CB_GETCOUNT | LB_GETCOUNT üzenetet küld a listaablakba. A listaelemek számát adja vissza. |
CB_GETCURSEL | LB_GETCURSEL üzenet küldése a listaablakba. Ha van ilyen, az aktuálisan kijelölt elem indexét adja vissza. |
CB_GETDROPPEDCONTROLRECT | Kitölti a megadott téglalapszerkezetet egy legördülő lista képernyőkoordinátáival. |
CB_GETDROPPEDSTATE | TRUE ad vissza, ha egy legördülő lista meg van nyitva; ellenkező esetben HAMISad vissza. |
CB_GETDROPPEDWIDTH | A legördülő lista minimális megengedett szélességét adja vissza képpontban. |
CB_GETEDITSEL | Egy EM_GETSEL üzenetet küld a szerkesztési vezérlőnek, és visszaadja az aktuális kijelölés kezdő és záró pozícióját. A legördülő listákban az ablak eljárása CB_ERR ad vissza. |
CB_GETEXTENDEDUI | Igaz ad vissza, ha a kombinált lista egy legördülő lista vagy legördülő lista, és be van állítva a felhasználói felület kiterjesztése jelző; ellenkező esetben HAMISad vissza. |
CB_GETHORIZONTALEXTENT | LB_GETHORIZONTALEXTENT üzenetet küld a listaablakba. A legördülő lista görgethető szélességét adja vissza képpontban. |
CB_GETITEMDATA | LB_GETITEMDATA üzenetet küld a listaablakba. A megadott listaelemhez társított értéket adja vissza. |
CB_GETITEMHEIGHT | LB_GETITEMHEIGHT üzenetet küld a listaablakba. A megadott tulajdonos által rajzolt listaelem magasságát adja vissza képpontban. |
CB_GETLBTEXT | LB_GETTEXT üzenetet küld a listaablakba. A megadott listaszöveget a megadott pufferbe másolja. |
CB_GETLBTEXTLEN | LB_GETTEXTLEN üzenetet küld a listaablakba. Visszaadja a megadott listaszöveg TCHAR-hosszát. |
CB_GETLOCALE | LB_GETLOCALE üzenetet küld a listaablakba. A lista aktuális területi beállítását adja vissza. |
CB_GETMINVISIBLE | Lekéri a lista legördülő listájában látható elemek minimális számát. |
CB_GETTOPINDEX | LB_GETTOPINDEX üzenetet küld a listaablakba. A legördülő lista első látható elemének indexét adja vissza. |
CB_INITSTORAGE | LB_INITSTORAGE üzenet küldése a listaablakba. Inicializálja a megadott számú elem és az elemsztringek megadott bájtszámát. |
CB_INSERTSTRING | LB_INSERTSTRING üzenetet küld a listaablakba. Beszúr egy listaelemet a megadott helyre. |
CB_LIMITTEXT | EM_LIMITTEXT üzenetet küld a szerkesztési vezérlőnek. Beállítja a felhasználó által a szerkesztési vezérlőbe beírható karakterek maximális számát. A legördülő listákban az ablak eljárása CB_ERR ad vissza. |
CB_RESETCONTENT | Egy LB_RESETCONTENT üzenetet küld a listaablakba, és eltávolítja a lista tartalmát. |
CB_SELECTSTRING | LB_SELECTSTRING üzenetet küld a listaablakba. Kiválasztja az első listaelemet( ha van ilyen), amely a megadott szöveg karaktereivel kezdődik. |
CB_SETCURSEL | Egy LB_SETCURSEL üzenetet küld a listaablakba, és beállítja az aktuális kijelölést. |
CB_SETDROPPEDWIDTH | Beállítja a legördülő lista minimális megengedett szélességét képpontban. |
CB_SETEDITSEL | EM_SETSEL üzenetet küld a szerkesztési vezérlőnek. Kiválasztja a megadott szövegtartományt. A legördülő listákban az ablak eljárása CB_ERR ad vissza. |
CB_SETEXTENDEDUI | Beállítja vagy törli a kiterjesztett felhasználói felület jelzőt. Ez a jelölő módosítja a listát egy legördülő lista vagy legördülő lista megnyitásához és bezárásához. Ha a kombinált lista egy egyszerű kombinált lista, az ablak eljárás CB_ERR ad vissza. |
CB_SETHORIZONTALEXTENT | LB_SETHORIZONTALEXTENT üzenetet küld a listaablakba. A legördülő lista görgethető szélességét képpontban állítja be. |
CB_SETITEMDATA | LB_SETITEMDATA üzenet küldése a listaablakba. A megadott értéket egy listaelemhez társítja. |
CB_SETITEMHEIGHT | LB_SETITEMHEIGHT üzenetet küld a listaablakba. Beállítja a megadott tulajdonos által rajzolt listaelem vagy a kijelölési mező magasságát. |
CB_SETLOCALE | Egy LB_SETLOCALE üzenetet küld a listaablakba, és beállítja a lista aktuális területi beállítását. A területi beállítás hatással van a lista rendezési módjára, ha CBS_SORT stílussal rendelkezik, és a sztringek CB_ADDSTRINGhasználatával vannak hozzáadva. |
CB_SETMINVISIBLE | A kombinált lista legördülő listájában szereplő látható elemek minimális számát adja meg. |
CB_SETTOPINDEX | LB_SETTOPINDEX üzenet küldése a listaablakba. Görgeti a legördülő listát, hogy a megadott elem a látható tartomány tetején legyen. |
CB_SHOWDROPDOWN | Megjeleníti vagy elrejti a legördülő listát. Ez az üzenet nincs hatással az egyszerű kombinált listákra. |
WM_CHAR | Feldolgozza a karakterbemenetet. A legördülő listamezőkben ez az üzenet a listaablakba kerül, amely a kijelölést a megadott karakterrel kezdődő első elemre helyezi át. Az egyszerű és legördülő kombinált listákban a rendszer ezt az üzenetet továbbítja a szerkesztési vezérlőnek. |
WM_CLEAR | Törli a szerkesztési kijelölést. Az egyszerű és legördülő kombinált listákban a szerkesztési vezérlő feldolgozza ezt az üzenetet. A legördülő listákban az ablak eljárása CB_ERR ad vissza. |
WM_COMMAND | Feldolgozza a szerkesztési vezérlő és a listaablak értesítési üzeneteit, és elküldi a megfelelő kombinált lista értesítési kódjait a szülőablaknak. |
Szerkesztésvezérlési értesítések esetén az ablak eljárása frissítheti a listaablak aktuális kijelölését, a simítási indexet és a felső indexet. A listaértesítési üzenetek esetében az ablak eljárása frissítheti a kijelölési mező tartalmát. | |
WM_COMPAREITEM | Átadja az üzenetet a szülőablaknak, így az alkalmazás megadhatja két tulajdonos által rajzolt listaelem relatív rendezési pozícióját. A kombinált lista ablaka a listaablakból kapja meg ezt az üzenetet. |
WM_COPY | Másolja a szerkesztési kijelölést a vágólapra. Az egyszerű és legördülő kombinált listákban a szerkesztési vezérlő feldolgozza ezt az üzenetet. A legördülő listákban az ablak eljárása CB_ERR ad vissza. |
WM_CREATE | Inicializálja a kombinált listát. |
WM_CUT | Törli a szerkesztési kijelölést, és elhelyezi a vágólapon. Az egyszerű és legördülő kombinált listákban a szerkesztési vezérlő feldolgozza ezt az üzenetet. A legördülő listákban az ablak eljárása CB_ERR ad vissza. |
WM_DELETEITEM | Átadja az üzenetet a szülőablaknak, és értesíti az alkalmazást a listaelem törléséről. A kombinált lista ablaka a listaablakból kapja meg ezt az üzenetet. |
WM_DRAWITEM | Az üzenetet a szülőablakba továbbítja, amely lehetővé teszi, hogy az alkalmazás megfestse a megadott listaelemet. A kombinált lista ablaka a listaablakból kapja meg ezt az üzenetet. Az ablakműveletből az is származhat, hogy az alkalmazás kifestse egy legördülő lista kijelölési mezőjét. |
WM_ENABLE | Beállítja az állapotot az egér- és billentyűzetbemenet engedélyezéséhez vagy letiltásához. |
WM_ERASEBKGND | 1 értéket ad vissza, amely azt jelzi, hogy a háttér törlődik. |
WM_GETDLGCODE | A DLG_WANTCHARS és DLGC_WANTARROWS értékek kombinációját adja vissza. |
WM_GETFONT | Visszaadja a fogópontot az aktuális betűtípushoz, amellyel a kombinált lista megrajzolja a szövegét. |
WM_GETTEXT | Másolja a kijelölési mező tartalmát a megadott pufferbe. Az egyszerű és legördülő kombinált listákban a szerkesztési vezérlő feldolgozza ezt az üzenetet. |
WM_GETTEXTLENGTH | A kijelölési mező szövegének hosszát adja vissza karakterekben. Az egyszerű és legördülő kombinált listákban a szerkesztési vezérlő feldolgozza ezt az üzenetet. |
WM_KEYDOWN | Feldolgozza a nemcharacter billentyűzet bemenetét. A legördülő listamezőkben ez az üzenet a listaablakba kerül, amely megjelenítheti vagy elrejtheti önmagát, vagy módosíthatja az aktuális kijelölési vagy simítóindexet. Az egyszerű és legördülő kombinált listákban a rendszer ezt az üzenetet továbbítja a szerkesztési vezérlőnek. A szerkesztési vezérlő bizonyos kulcsokat továbbít a listaablakba, például a FEL és a LE nyílbillentyűt, valamint az F4 billentyűt. |
WM_KILLFOCUS | Elrejti a kiemelést a kijelölési mezőben, és szükség esetén bezárja a legördülő listát. Ha a beviteli fókuszt fogadó ablak a kombinált lista része (például a szerkesztési vezérlő), a rendszer figyelmen kívül hagyja ezt az üzenetet. |
WM_LBUTTONDBLCLK | Ugyanaz, mint WM_LBUTTONDOWN. |
WM_LBUTTONDOWN | A fókuszt a kombinált listára állítja, és a legördülő listák és legördülő listák esetében megnyithatja vagy bezárhatja a listát. Ha megnyitja a listát, az ablak eljárás rögzíti az egeret, hogy engedélyezze a kijelölést az egérgomb húzásával és felengedésével. |
WM_LBUTTONUP | Felszabadítja az egérrögzítést, ha az egér megnyitotta a listát. |
WM_MEASUREITEM | Közzéteszi az üzenetet a szülőablakban, így az alkalmazás módosíthatja a megadott MEASUREITEMSTRUCT struktúra tartalmát. A kombinált lista ablaka a listaablakból kapja meg ezt az üzenetet. |
WM_MOUSEMOVE | Az üzenet a listaablakba kerül, ha az egér megnyitotta a listát, és az egérgomb továbbra is le van kapcsolva. Így a felhasználó kijelölhet egy elemet úgy, hogy az egérmutatót egy listaelemre húzza, majd felengedi a gombot. |
WM_NCCREATE | A kombinált lista ablakának eljárása által használt belső adatstruktúra lefoglalása. |
WM_NCDESTROY | Felszabadítja a WM_NCCREATE üzenetre válaszul lefoglalt erőforrásokat. |
WM_PAINT | A kombinált lista érvénytelen régióját festi. Ha wParam nem NULL, akkor a rendszer azt feltételezi, hogy egy alosztályfüggvényből átadott eszközkörnyezeti (DC-) leíró. Az ablakos eljárás a megadott tartományvezérlőt használja BeginPaint és EndPaintmeghívása helyett. |
WM_PASTE | A szerkesztési kijelölést lecseréli a vágólap tartalmára. Az egyszerű és legördülő kombinált listákban a szerkesztési vezérlő feldolgozza ezt az üzenetet. A legördülő listákban az ablak eljárása CB_ERR ad vissza. |
WM_SETFOCUS | A fókuszt a szerkesztési vezérlőre állítja, vagy a legördülő listamezőkben megfordítja a kijelölési mezőt, és bekapcsolja a elemet a listaablakban. |
WM_SETFONT | Menti a megadott betűtípus-leírót egy belső struktúrában, módosítja a kijelölési mező és a lista méretét, és érvényteleníti a kombinált listaablakot. A kijelölési mezőben lévő szöveg és a lista a mentett betűtípusban jelenik meg. |
WM_SETREDRAW | Beállítja vagy törli az újraírási jelzőt. Ha az újrarajzolt jelző törlődik, a kombinált lista nem lesz újrafestve, amíg a jelölő újra be nem van állítva. |
WM_SETTEXT | Beállítja a szerkesztési vezérlő tartalmát. Az egyszerű és legördülő kombinált listákban a szerkesztési vezérlő feldolgozza ezt az üzenetet. A legördülő listákban az ablak eljárása CB_ERR ad vissza. |
WM_SIZE | Szükség esetén átméretezi a gyermekablakokat. |
WM_SYSKEYDOWN | A felhasználó által lenyomott nyílbillentyűtől függően megnyitja vagy bezárja a legördülő listát. |
A rendszer minden más üzenetet továbbít a DefWindowProc függvénynek az alapértelmezett feldolgozáshoz.