HWND hwndCombox = GetDlgItem(hDlg, IDC_COMBOSTATE);
switch (message) {
case WM_INITDIALOG:
SendMessage(hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES);
addColumnFlag = true;
SetListMessage(hwndList);
SetWindowLongPtr(hDlg, GWLP_USERDATA, 100);
SendDlgItemMessage(hDlg, IDC_COMBOSTATE, CB_ADDSTRING, 0, (LPARAM) L"全部");
SendDlgItemMessage(hDlg, IDC_COMBOSTATE, CB_ADDSTRING, 0, (LPARAM) L"未读");
SendMessage(hwndCombox, CB_ADDSTRING, 0, (LPARAM) L"已读");
SendMessage(hwndCombox, CB_SETCURSEL, (WPARAM) 0, (LPARAM) 0); //设置当前选中第0行
break;
case WM_NOTIFY:
if (((LPNMHDR) lParam)->hwndFrom == hwndList) {
switch (((LPNMHDR) lParam)->code) {
case LVN_ITEMCHANGED:
if (GetWindowLongPtr(hDlg, GWLP_USERDATA) == 100) {
NMLISTVIEW *nmlv = (NMLISTVIEW *) lParam;
LVITEM lvI = { 0 };
lvI.iItem = nmlv->iItem;
lvI.iSubItem = 0;
lvI.mask = LVIF_PARAM;
ListView_GetItem(hwndList, &lvI);
if (LVIF_STATE == nmlv->uChanged && (nmlv->uNewState & LVIS_SELECTED))
{
nmlv->lParam;//解出想要的信息
}
}
break;
}
break;
}
break;
case IDCANCEL:
DestroyWindow(hDlg);
return TRUE;
}
return FALSE;
void SetListMessage(HWND hwndList)
{
if (addColumnFlag)
{
LVCOLUMN lvc = { 0 };
// Initialize the LVCOLUMN structure.
// The mask specifies that the format, width, text, and
// subitem members of the structure are valid.
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT;
lvc.fmt = LVCFMT_CENTER;
//lvc.iSubItem = 0;
//lvc.pszText = _T("选择");
//lvc.cx = 60; // width of column in pixels
//ListView_InsertColumn(hwndList, 0, &lvc);
lvc.iSubItem = 0;
lvc.pszText = _T("序号");
lvc.cx = 60; // width of column in pixels
ListView_InsertColumn(hwndList, 0, &lvc);
lvc.iSubItem = 1;
lvc.pszText = _T("状态");
lvc.cx = 100 - GetSystemMetrics(SM_CXVSCROLL);//
ListView_InsertColumn(hwndList, 1, &lvc);
lvc.iSubItem = 2;
lvc.pszText = _T("标题");
lvc.cx = 100 - GetSystemMetrics(SM_CXVSCROLL);//
ListView_InsertColumn(hwndList, 2, &lvc);
lvc.iSubItem = 3;
lvc.pszText = _T("发送人");
lvc.cx = 100 - GetSystemMetrics(SM_CXVSCROLL);//
ListView_InsertColumn(hwndList, 3, &lvc);
lvc.iSubItem = 4;
lvc.pszText = _T("发送时间");
lvc.cx = 100 - GetSystemMetrics(SM_CXVSCROLL);//
ListView_InsertColumn(hwndList,4, &lvc);
addColumnFlag = false;
//enumerate plugins, fill in list
//bool one_enabled = false;
}
ListView_DeleteAllItems(hwndList);
//// Some code to create the list-view control.
//// Initialize LVITEM members that are common to all items.
LVITEM lvI = { 0 };
lvI.mask = LVIF_TEXT | LVIF_PARAM | LVIF_NORECOMPUTE;// | LVIF_IMAGE;
list<SystemMessageOperator*>::iterator allMesIter;
int i = 0;
for (allMesIter = allMessageOperator.begin(); allMesIter != allMessageOperator.end(); allMesIter++)
{
lvI.mask = LVIF_TEXT | LVIF_PARAM;// | LVIF_IMAGE;
lvI.iSubItem = 0;
lvI.lParam = (LPARAM) *allMesIter;
lvI.pszText = (LPWSTR) ((SystemMessageOperator) **allMesIter).mesId.c_str();
lvI.iItem = i;
if (ListView_InsertItem(hwndList, &lvI) != -1)
{
LV_ITEM lvitem = { 0 };
wstring tw;
tw = IntToWstring(i);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = i;
lvitem.iSubItem = 0;
lvitem.pszText = (LPWSTR) tw.c_str();
ListView_SetItem(hwndList, &lvitem);
tw = ((SystemMessageOperator) **allMesIter).isRead;
if (L"1" == tw)
{
tw = L"已读";
}
else
{
tw = L"未读";
}
lvitem.mask = LVIF_TEXT;
lvitem.iItem = i;
lvitem.iSubItem = 1;
lvitem.pszText = (LPWSTR) (tw.c_str());
ListView_SetItem(hwndList, &lvitem);
tw = ((SystemMessageOperator) **allMesIter).title;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = i;
lvitem.iSubItem = 2;
lvitem.pszText = (LPWSTR) (tw.c_str());
ListView_SetItem(hwndList, &lvitem);
tw = ((SystemMessageOperator) **allMesIter).sendCode;
lvitem.iItem = i;
lvitem.iSubItem = 3;
lvitem.pszText = (LPWSTR) tw.c_str();
ListView_SetItem(hwndList, &lvitem);
tw = ((SystemMessageOperator) **allMesIter).sendTime;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = i;
lvitem.iSubItem = 4;
lvitem.pszText = (LPWSTR) tw.c_str();
ListView_SetItem(hwndList, &lvitem);
}
++i;
}
}