• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MFCのリストボックスについて)

MFCのリストボックスについて

このQ&Aのポイント
  • VC6.0で作成したMFCアプリケーションのリストボックス内に存在するカーソルの位置を取得する方法について質問があります。
  • リストボックスの選択位置を取得するためには、OnSelchangeDatatable関数内でGetIndex関数を呼び出す必要があります。
  • しかし、現在の実装ではm_nCount変数には常に0が入ってしまいます。この原因はOnSelchangeDatatable関数が他の関数内から呼び出されないためだと思われます。また、0から始まるインデックスとは、選択された項目のリストボックス内での位置を示すものです。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

OnSelchangeDatatableはメッセージマップに登録されているのでしょうか? BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)   //{{AFX_MSG_MAP(CXXXDlg)   ON_WM_PAINT()   ON_WM_QUERYDRAGICON()   ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeDatatable)   //}}AFX_MSG_MAP END_MESSAGE_MAP() といった具合にメッセージマップが記述されていないとOnSelchangeDatatableへ制御が移りませんよ IDC_LIST1、CXXXDlgは 実際のリソースIDやクラス名と読み替えてください ClassWizardから追加するなら オブジェクトIDでリストボックスのリソースIDを選択 メッセージでLBN_SELCHANGEを選択 関数の追加をクリック メンバ関数の追加で必要なら関数名を修正 といった手順で追加しましょう メッセージマップとヘッダーでの宣言、CPPファイルへの関数スケルトンを作成してくれます 0から始まるインデックスとは リストボックスに5項目あるなら 1番目 ... 0 2番目 ... 1 3番目 ... 2 4番目 ... 3 5番目 ... 4 といった値になるということです

nanami_wic
質問者

お礼

素早いご解答&適切なご解答ありがとうございます。 ご指摘の点を修正しましたところ、立派に機能し始めました。ありがとうございます。 また、0から始まる~のくだりに関しては、初歩的なことなのにも関わらず、ご丁寧にお答えくださり、ありがとうございます。

関連するQ&A