LB_GETCURSEL

リストボックスで選択された項目が何番目か(インデックス)を取得するには、SendMessageでLB_GETCURSELを送信する・・・。
すると、戻り値に番号(インデックス)が帰ってくる・・・。

LB_GETCURSEL message (Windows)

まずresource.hに、

文字列を追加するためのID_BUTTON1とは別に、
選択されている項目番号を取得するID_BUTTON2を定義する・・・。

LB_GETCURSEL.rcに、

Button2を配置・・・。

Button2が押された時、

SendMessageでLB_GETCURSELを送信し、戻り値のインデックスidxをMessageBoxで表示・・・。

f:id:BG1:20150909135221p:plain

Item1-1で、

f:id:BG1:20150909135242p:plain

Button1の隣にButton2が配置されてる・・・。

f:id:BG1:20150909135344p:plain

先にID_EDIT1とButton1で3つ項目を追加しておく・・・。

f:id:BG1:20150909135419p:plain

"DEF"を選択する・・・。
この状態でButton2を押すと、

f:id:BG1:20150909135450p:plain

インデックスは0から始まるので、そういう意味では1番目が選択されているということが分かる・・・。

f:id:BG1:20150909135637p:plain

"GHI"を選択して、Button2を押すと、

f:id:BG1:20150909135813p:plain

2番目・・・。

f:id:BG1:20150909135857p:plain

"ABC"なら、

f:id:BG1:20150909135915p:plain

0番目・・・。

ちなみに未選択なら、

f:id:BG1:20150909135949p:plain

-1が帰ってくる・・・。

Sample/LB_GETCURSEL.cpp at master · bg1bgst333/Sample · GitHub
Sample/resource.h at master · bg1bgst333/Sample · GitHub
Sample/LB_GETCURSEL.rc at master · bg1bgst333/Sample · GitHub