スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--.--.-- | スポンサー広告

リストビューのサブアイテムの直接編集

現在マップエディタを作成しているのですが
(といっても身辺整理中に付き進行が遅い・・・・・・)
データ用のレイヤーの編集を行う際、
リストビューのアイテムを直接編集できると便利だよなあ~と
考えたのですが・・・・・・
そういや先頭のカラム以外の編集ってデフォルトではできないことに気づき
('A`)←しばらくこんな顔になっていました。

というわけで今回は SDK でリストビューのサブアイテムを編集する方法について。

# 方法については某所を参考にしています

まずはコード(一部のみ抜粋)


/* ダイアログベースアプリで作成してます */

// 初期化部分
BOOL APITestMain::InitDialog(LPARAM lParam)
{
// コモンコントロールの初期化
INITCOMMONCONTROLSEX ic;
ic.dwSize = sizeof(INITCOMMONCONTROLSEX);
ic.dwICC = ICC_LISTVIEW_CLASSES;
::InitCommonControlsEx(&ic);

// リストビューのハンドルを取得
m_ListWnd = ::GetDlgItem(hWnd, IDC_LISTVIEW);

// リストビューのヘッダの作成
CreateHeader();

// リストビューのアイテムの作成
AddItems(_T("item1"), _T("value1"));
AddItems(_T("item2"), _T("value2"));
AddItems(_T("item3"), _T("value3"));

return TRUE;
}

// リストビューのヘッダの作成
void APITestMain::CreateHeader()
{
LV_COLUMN lvcol;
lvcol.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvcol.fmt = LVCFMT_LEFT;
lvcol.cx = 150;
lvcol.pszText = _T("Name");
lvcol.iSubItem = 0;
ListView_InsertColumn(m_ListWnd, 0, lvcol);

lvcol.cx = 150;
lvcol.pszText = _T("Value");
lvcol.iSubItem = 1;
ListView_InsertColumn(m_ListWnd, 1, lvcol);
}

// リストビューのアイテムの追加作成
void APITestMain::AddItems(TCHAR* Name, TCHAR* Value)
{
int count = ListView_GetItemCount(m_ListWnd);

SetItems(count, Name, Value);
}

// リストビューのアイテムの作成
void APITestMain::SetItems(int Item, TCHAR* Name, TCHAR* Value)
{
LV_ITEM item;

memset(&item, 0, sizeof(LV_ITEM));

item.mask = LVIF_TEXT;
item.pszText = Name;
item.iItem = Item;
item.iSubItem = 0;
ListView_InsertItem(m_ListWnd, &item);

item.pszText = Value;
item.iSubItem = 1;
ListView_SetItem(m_ListWnd, &item);
}


リストビューを使うにあたっての初期化周りです。
まあいつものやつですね。

次回に続く
# 2007/6/23 ちょこっとコードを編集
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

2007.06.23 | Comments(0) | Trackback(0) | プログラム

コメント

コメントの投稿


秘密にする

«  | HOME |  »

ブロとも申請フォーム

この人とブロともになる

カウンター


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。