| 定数 | 解説 |
|---|---|
| LVS_ALIGNLEFT | 大きいアイコン、小さいアイコン表示で項目が左寄せになる |
| LVS_ALIGNTOP | 大きいアイコン、小さいアイコン表示で項目が上に寄せられる |
| LVS_AUTOARRANGE | 大きいアイコン、小さいアイコン表示で自動的に整列する |
| LVS_BUTTON | 大きいアイコン表示で、項目アイコンをボタン風にする |
| LVS_EDITLABELS | テキストは編集可能である 親ウィンドウが LVN_ENDLABELEDIT 通知を処理しなければならない |
| LVS_ICON | 大きいアイコン表示 |
| LVS_LIST | 一覧表示 |
| LVS_NOCOLUMNHEADER | 詳細表示で、列見出しが表示されない |
| LVS_NOLABELWRAP | 大きいアイコン表示で項目テキストを1行に表示 |
| LVS_NOSORTHEADER | 列見出しをクリックしてもアクションを実行しない |
| LVS_OWNERDRAWFIXED | 詳細表示で、項目をオーナーが描画する 親ウィンドウは WM_DRAWITEM メッセージを受けるようになる |
| LVS_REPORT | 詳細表示 最初の列が常に左寄せにされる |
| LVS_SHAREIMAGELISTS | コントロールが破棄されても 関連付けられているイメージリストを破棄しない 複数のリストビューでイメージリストを共有する時に指定する |
| LVS_SHOWSELALWAYS | フォーカスを失っても、常に選択を表示する |
| LVS_SINGLESEL | 1度に1つの項目のみを選択できる |
| LVS_SMALLICON | 小さいアイコン表示 |
| LVS_SORTASCENDING | 項目テキストが昇順になるように、項目を整列する |
| LVS_SORTDESCENDING | 項目テキストが降順になるように、項目を整列する |
typedef struct _LVCOLUMN {
UINT mask;
int fmt;
int cx;
LPTSTR pszText;
int cchTextMax;
int iSubItem;
} LVCOLUMN, FAR *LPLVCOLUMN;
mask には、有効な情報が含まれるメンバを表すフラグを指定します| 定数 | 解説 |
|---|---|
| LVCF_FMT | fmt メンバが有効 |
| LVCF_SUBITEM | iSubItem メンバが有効 |
| LVCF_TEXT | pszTest メンバが有効 |
| LVCF_WIDTH | cs メンバが有効 |
typedef struct _LVITEM {
UINT mask;
int iItem;
int iSubItem;
UINT state;
UINT stateMask;
LPTSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
} LVITEM, FAR *LPLVITEM;
mask には、この構造体の使用するメンバを表すフラグを指定します| 定数 | 解説 |
|---|---|
| LVIF_DI_SETITEM | LVN_GETDISPINFO 通知メッセージでのみ設定可能で システムが要求された項目情報を、格納し再度尋ねないことを表す |
| LVIF_IMAGE | iImage メンバが有効である |
| LVIF_PARAM | lParam メンバが有効である |
| LVIF_STATE | state メンバが有効である |
| LVIF_TEXT | pszText メンバが有効である |
| 定数 | 解説 |
|---|---|
| LVIS_CUT | 切り取りと貼り付け操作に対してマークされる |
| LVIS_DRAPHILITED | 切り取りと貼り付け操作の対象として強調表示される |
| LVIS_FOCUSED | フォーカスをもっている |
| LVIS_OVERLAYMASK | オーバーレイイメージインデックスが含まれているかどうか判定する |
| LVIS_SELECTED | 選択されている |
| LVIS_STATEIMAGEMASK | 状態イメージが関連付けられているかどうか判定する |
#include <windows.h>
#include <commctrl.h>
#define TITLE TEXT("Kitty on your lap")
LPCTSTR strItem[] = {TEXT("RENA") , TEXT("YUKI") , TEXT("MIMI")};
LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) {
LVCOLUMN col;
LVITEM item = {0};
int iCount = 0;
static HWND hList;
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CREATE:
InitCommonControls();
hList = CreateWindowEx(0 , WC_LISTVIEW , 0 ,
WS_CHILD | WS_VISIBLE | LVS_REPORT ,
0 , 0 , 10 , 10 , hWnd , (HMENU)1 ,
((LPCREATESTRUCT)lp)->hInstance , NULL);
col.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
col.fmt = LVCFMT_LEFT;
col.cx = 100;
col.pszText = TITLE;
ListView_InsertColumn(hList , 0 , &col);
item.mask = LVIF_TEXT;
for ( ;iCount < 3 ; iCount++) {
item.pszText = strItem[iCount];
item.iItem = iCount;
ListView_InsertItem(hList , &item);
}
return 0;
case WM_SIZE:
MoveWindow(hList , 0 , 0 , LOWORD(lp) , HIWORD(lp) , FALSE);
return 0;
}
return DefWindowProc(hWnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hWnd;
MSG msg;
WNDCLASS winc;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = winc.cbWndExtra = 0;
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName = NULL;
winc.lpszClassName = TEXT("KITTY");
if (!RegisterClass(&winc)) return -1;
hWnd = CreateWindow(
TEXT("KITTY") , TITLE ,
WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
CW_USEDEFAULT , CW_USEDEFAULT ,
CW_USEDEFAULT , CW_USEDEFAULT ,
NULL , NULL , hInstance , NULL
);
if (hWnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

#include <windows.h>
#include <commctrl.h>
#define TITLE TEXT("Kitty on your lap")
LPTSTR strItem[] = {TEXT("RENA") , TEXT("YUKI") , TEXT("MIMI")};
LPTSTR strAttr[] = {
TEXT("口が悪くて手が早い、勝手気ままでまさに「猫」") ,
TEXT("思慮深く、清楚でけなげ") ,
TEXT("「ごしゅじんさまだ〜いすきっ!」と飛びついてきそうな甘えん坊")
};
LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) {
LVCOLUMN col;
LVITEM item = {0};
int iCount = 0;
static HWND hList;
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CREATE:
InitCommonControls();
hList = CreateWindowEx(0 , WC_LISTVIEW , 0 ,
WS_CHILD | WS_VISIBLE | LVS_REPORT ,
0 , 0 , 10 , 10 , hWnd , (HMENU)1 ,
((LPCREATESTRUCT)lp)->hInstance , NULL);
col.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
col.fmt = LVCFMT_LEFT;
col.cx = 100;
col.pszText = TEXT("Name");
col.iSubItem = 0;
ListView_InsertColumn(hList , 0 , &col);
col.iSubItem = 1;
col.pszText = TEXT("Introduction");
ListView_InsertColumn(hList , 1 , &col);
item.mask = LVIF_TEXT;
for ( ;iCount < 3 ; iCount++) {
item.pszText = strItem[iCount];
item.iItem = iCount;
item.iSubItem = 0;
ListView_InsertItem(hList , &item);
item.pszText = strAttr[iCount];
item.iItem = iCount;
item.iSubItem = 1;
ListView_SetItem(hList , &item);
}
return 0;
case WM_SIZE:
MoveWindow(hList , 0 , 0 , LOWORD(lp) , HIWORD(lp) , FALSE);
return 0;
}
return DefWindowProc(hWnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hWnd;
MSG msg;
WNDCLASS winc;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = winc.cbWndExtra = 0;
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName = NULL;
winc.lpszClassName = TEXT("KITTY");
if (!RegisterClass(&winc)) return -1;
hWnd = CreateWindow(
TEXT("KITTY") , TITLE ,
WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
CW_USEDEFAULT , CW_USEDEFAULT ,
CW_USEDEFAULT , CW_USEDEFAULT ,
NULL , NULL , hInstance , NULL
);
if (hWnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

HIMAGELIST ListView_SetImageList( HWND hwnd , HIMAGELIST himl , int iImageList );hwnd には、リストビューのハンドルを指定します
| 定数 | 解説 |
|---|---|
| LVSIL_NORMAL | 大きいアイコン |
| LVSIL_SMALL | 小さいアイコン |
| LVSIL_STATE | 状態イメージ |
#define OEMRESOURCE
#include <windows.h>
#include <commctrl.h>
#define TITLE TEXT("Kitty on your lap")
LPTSTR strItem[] = {TEXT("RENA") , TEXT("YUKI") , TEXT("MIMI")};
LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) {
LVCOLUMN col;
LVITEM item = {0};
HIMAGELIST hImg;
int iCount = 0;
static HWND hList;
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CREATE:
InitCommonControls();
hImg = ImageList_Create(16 , 16 , ILC_COLOR4 | ILC_MASK, 1 , 1);
ImageList_AddIcon(hImg , LoadIcon(NULL , IDI_ASTERISK));
hList = CreateWindowEx(0 , WC_LISTVIEW , 0 ,
WS_CHILD | WS_VISIBLE | LVS_REPORT ,
0 , 0 , 10 , 10 , hWnd , (HMENU)1 ,
((LPCREATESTRUCT)lp)->hInstance , NULL);
ListView_SetImageList(hList , hImg , LVSIL_SMALL);
col.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
col.fmt = LVCFMT_LEFT;
col.cx = 100;
col.pszText = TEXT("Name");
ListView_InsertColumn(hList , 0 , &col);
item.mask = LVIF_TEXT | LVIF_IMAGE;
item.iImage = 0;
for ( ;iCount < 3 ; iCount++) {
item.pszText = strItem[iCount];
item.iItem = iCount;
ListView_InsertItem(hList , &item);
}
return 0;
case WM_SIZE:
MoveWindow(hList , 0 , 0 , LOWORD(lp) , HIWORD(lp) , FALSE);
return 0;
}
return DefWindowProc(hWnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hWnd;
MSG msg;
WNDCLASS winc;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = winc.cbWndExtra = 0;
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName = NULL;
winc.lpszClassName = TEXT("KITTY");
if (!RegisterClass(&winc)) return -1;
hWnd = CreateWindow(
TEXT("KITTY") , TITLE ,
WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
CW_USEDEFAULT , CW_USEDEFAULT ,
CW_USEDEFAULT , CW_USEDEFAULT ,
NULL , NULL , hInstance , NULL
);
if (hWnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

HIMAGELIST ListView_SetImageList( HWND hwnd , HIMAGELIST himl , int iImageList );リストビューにイメージリストを割り当てます
| 定数 | 解説 |
|---|---|
| LVSIL_NORMAL | 大きいアイコン |
| LVSIL_SMALL | 小さいアイコン |
| LVSIL_STATE | 状態イメージ |