我使用minGW32編譯器。 我創建了複選框,這樣的一個ListView:winapi listview檢查項目C++
HWND hListView = CreateWindowExW(0, WC_LISTVIEWW, L"",
WS_VISIBLE | WS_CHILD | WS_TABSTOP | LVS_REPORT | LVS_EDITLABELS,
10,10,500,500, hwnd, (HMENU)ID_LISTVIEW, GetModuleHandle(NULL), NULL);
SendMessage(hListView, WM_SETFONT, (WPARAM) font, TRUE);
ListView_SetExtendedListViewStyle(hListView, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | LVS_EX_GRIDLINES/*LVSCW_AUTOSIZE_USEHEADER*/);
lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH | LVCF_FMT;
lvc.fmt = LVCFMT_LEFT;
而且我想,當任何複選框被選中進行檢查。例如。如果我檢查任何複選框向我顯示一個消息框:
I use this WM_NOTIFY:
case WM_NOTIFY:
{
switch (LOWORD(wParam))
{
case ID_LISTVIEW:
{
switch (((LPNMHDR) lParam)->code)
{
case LVN_ITEMCHANGED :
MessageBoxW(NULL, (LPCWSTR)lpMsgBuf, L"Error", MB_OK | MB_ICONERROR);
}
break;
}
break;
}
break;
}
break;
但是,這種情況發生了。當我單擊ListView的空白區域或者只需單擊任何項目時。但是我想只在複選框更改時才運行消息框。
您可以用以前的狀態比較複選框的當前狀態,並只顯示消息框,如果它改變 –