WindowsAPI(Win32API) Advent Calendar 2015 9日目
WindowsAPI(Win32API) Advent Calendar 2015 - Adventar
ListView_GetNextItemは、リストビューの指定されたインデックスから順に調べて、指定の条件の状態になっている項目のインデックスを探しだすマクロ・・・。
ListView_GetNextItem macro (Windows)
ファイルを検索するAPIのFindNextFileのように繰り返し処理と一緒に使う・・・。
resource.hに、
ListView_GetNextItem.rcに、
Button2(ID_BUTTON2)を追加・・・。
Button2(ID_BUTTON2)が押された時、
ListView_GetNextItemに、リストビューのハンドルhList、最初に調べる項目のインデックスidx(初期値は-1)、条件は選択された状態(LVNI_SELECTED)を指定する・・・。
初期値が-1の時は、先頭から調べるということなので、先頭から選択された項目を探す・・・。
戻り値が-1でなければ、戻り値が見つかったインデックスとなる・・・。
見つかったインデックスをMessageBoxで表示したら、今度はそのインデックスから条件に合う次のインデックスを探す・・・。
(といっても、この場合は1つしか選択できないので終了となるが・・・。)
こうして戻り値が-1になるまで探す・・・。
このようにTaro, Jiro, Saburoを上から追加していき、
Taroを選択し、Button2を押すと、
idxは2であることがわかる・・・。
Jiroを選択し、Button2を押すと、
idxは1・・・。
Saburoを選択し、Button2を押すと、
idxは0となる・・・。
Sample/ListView_GetNextItem.cpp at master · bg1bgst333/Sample · GitHub
Sample/resource.h at master · bg1bgst333/Sample · GitHub
Sample/ListView_GetNextItem.rc at master · bg1bgst333/Sample · GitHub