void LV_OnDelete(HWND hwnd, INT iRow = -1) { if (iRow == -1) iRow = ListView_GetNextItem(hwnd, -1, LVNI_SELECTED); if (iRow == -1) return; UINT State = LVIS_SELECTED | LVIS_FOCUSED; ListView_SetItemState(g_hListView, iRow, State, State); WCHAR sz[MAX_STRING]; LoadStringW(g_hInstance, IDS_QUERYDELETE, sz, _countof(sz)); if (IDYES != MessageBoxW(g_hMainWnd, sz, g_szTitle, MB_ICONINFORMATION | MB_YESNO)) { return; } ListView_DeleteItem(hwnd, iRow); g_Items.erase(g_Items.begin() + iRow); g_bModified = TRUE; ListView_SetItemState(g_hListView, iRow, State, State); InvalidateRect(hwnd, NULL, TRUE); }