void InitListViewContorol(HWND hWnd) { HWND hWndLV = GetDlgItem(hWnd, IDC_LIST_MAILBOX); LV_COLUMN lc; LV_ITEM li; HIMAGELIST hImgList; RECT rect; GetClientRect(hWndLV, &rect); // イメージリストの作成 hImgList = ImageList_Create(16, 16, ILC_COLOR | ILC_MASK, 1 , 1); ImageList_AddIcon(hImgList, LoadIcon(g_hInstance, "IDI_MAILBOX")); ListView_SetImageList(hWndLV, hImgList, LVSIL_SMALL); ListView_SetExtendedListViewStyle(hWndLV, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES); // ヘッダを追加 (表示しない) lc.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH; lc.fmt = LVCFMT_LEFT; lc.pszText = "メールボックス"; lc.cx = rect.right; lc.iSubItem = 0; lc.cchTextMax = strlen(lc.pszText); ListView_InsertColumn(hWndLV, 0, &lc); lc.pszText = "フォルダ名"; lc.cx = 0; lc.iSubItem = 1; lc.cchTextMax = strlen(lc.pszText); ListView_InsertColumn(hWndLV, 1, &lc); // メールボックスを列挙 THash MailBoxes; EnumMailBox(MailBoxes); // メールボックスを追加 int i = 0; for (THash::iterator itr = MailBoxes.begin(); itr != MailBoxes.end(); ++itr) { li.mask = LVIF_TEXT | LVIF_IMAGE; li.iItem = i; li.iImage = 0; // 表示名 li.pszText = (char *)((*itr).second).c_str(); li.iSubItem = 0; ListView_InsertItem(hWndLV, &li); // メールボックスのディレクトリ名 li.pszText = (char *)((*itr).first).c_str(); li.iSubItem = 1; ListView_SetItem(hWndLV, &li); // 設定されているメールボックスにチェックをつける if (g_temporary_mailbox.count((*itr).first) == 1) { ListView_SetCheckState(hWndLV, i, 1); } i++; } }