プログラムを書こう!

実務や自作アプリ開発で習得した役に立つソフトウェア技術情報を発信するブログ

MFCのリストコントロールに行を追加する

この記事は2019年09月22日に投稿しました。

f:id:paveway:20190914064630j:plain

目次

  1. はじめに
  2. MFCのリストコントロールに行を追加する
  3. おわりに

1. はじめに

こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているMFCのリストコントロールに行を追加する方法についてです。

目次へ

2. MFCのリストコントロールに行を追加する

MFCのリストコントロールに行を追加するには、CListCtlクラスのInsertItem関数を使用します。
InsertItem関数で、行の追加と1列目の値の設定が行われます。
2列目以降の値の設定は、SetItemText関数で行います。

書式

int InsertItem(
    int nItem,
    LPCTSTR lpszItem);

引数

nItem
追加する行のインデックス(0起算)

lpszItem
項目に設定する文字列

戻り値

成功した場合、新しい行のインデックス
失敗した場合、-1

書式

BOOL SetItemText(
    int nItem,
    int nSubItem,
    LPCTSTR lpszText);

引数

nItem
行のインデックス(0起算)

nSubItem
列のインデックス
項目ラベルを設定する場合は0を指定します。

lpszText
項目に設定する文字列

戻り値

成功した場合、TRUE
失敗した場合、FALSE

実装例

CListCtl m_list;

...

// 列(3列)を追加します。
m_list.InsertColumn(0, _T("列A"), LVCFMT_LEFT, 100);
m_list.InsertColumn(1, _T("列B"), LVCFMT_CENTER, 100);
m_list.InsertColumn(2, _T("列C"), LVCFMT_RIGHT, 100);

// 行を追加します。
m_list.InsertItem(0, _T("値A1"));
// 追加した行の2列目以降に値を設定します。
m_list.SetItemText(1, _T("値A2"));
m_list.SetItemText(2, _T("値A3"));

(以下同様)
// 2行目
m_list.InsertItem(0, _T("値B1"));
m_list.SetItemText(1, _T("値B2"));
m_list.SetItemText(2, _T("値B3"));

// 3行目
m_list.InsertItem(0, _T("値C1"));
m_list.SetItemText(1, _T("値C2"));
m_list.SetItemText(2, _T("値C3"));

API Reference

CListCtlクラス

InsertItem関数

SetItemText関数

目次へ

3. おわりに

前回

www.paveway.info

は列の追加でしたので、今回は行の追加方法の紹介です。
行の追加の場合、InsertItem関数とSetItemText関数を使用する必要があり、最初は試行錯誤しました。

紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。

目次へ


私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。

また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。

EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688

目次へ