Using List-View Controls
时间:2011-03-09 来源:LeeCe
Creating List-View Controls
1. #include <Commctrl.h>
2. #pragma comment(lib,"ComCtl32.lib")
3. m_list = CreateWindow(WC_LISTVIEW, )
HWND CreateListView (HWND hwndParent)
{
RECT rcl;
INITCOMMONCONTROLSEX icex;
// Ensure that the common control DLL is loaded.
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&icex);
// Create the list-view window in report view with label editing enabled.
GetClientRect (hwndParent, &rcl);
HWND hWndListView = CreateWindow(WC_LISTVIEW,
L"",
WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
0,
0,
rcl.right - rcl.left,
rcl.bottom - rcl.top,
hwndParent,
(HMENU)ID_LISTVIEW,
g_hInst,
NULL);
return (hWndListView);
}
4.
Adding List-View Image Lists
list-view control 默认创建,不会显示 item images.
你必须 手动 设置一个 image list到 list-view控件.
用LVM_SETIMAGELIST消息或相应宏ListView_SetImageList, 并且参数要说明 是否image list包含全大小的icon, 小icon,或静态图片。
获取一个list-view control对象的当前image list可以使用LVM_GETIMAGELIST。
! 你可以通过GetSystemMetrics函数获取系统参数,来决定适合大小的 full-sized和icons
如果应用程序不允许切换到 icon 视图, 你不用设置large icon list.
如果你设置了large 和 small大小的image lists, 他们必须包含同样的图片用同样的顺序,因为....
//创建image list
//只是创建, 没有插入items.//
Adding List-View Columns
列头定义在资源文件中,以IDS_FIRSTCOLUMN开头。
//增加列
LVCOLUM lvc
Adding List-View Items and Subitems
给list-view control增加 数据项, 定义LVITEM, 发送LVM_INSERTITEM.
如果使用报告视图, subitem text必须提供.
下面例子使用LVITEM结构, 通过LVM_INSERTITEM 或 ListView_InsertItem来添加。
设定LPSTR_TEXTCALLBAK值后, 使得控件 在任何显示数据的时候 都发送一个LVN_GETDISPINFO通知。