本文整理汇总了C++中ListView_GetItemState函数的典型用法代码示例。如果您正苦于以下问题:C++ ListView_GetItemState函数的具体用法?C++ ListView_GetItemState怎么用?C++ ListView_GetItemState使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ListView_GetItemState函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetDlgItem
void CPlayListDlg::OnDown(BOOL fVisible)
{
HWND hwndLV = GetDlgItem(m_hWnd, IDC_PLAY_LIST);
SetFocus(hwndLV);
int nCount = ListView_GetItemCount(hwndLV);
if (ListView_GetItemState(hwndLV, nCount - 1, LVIS_SELECTED))
return;
for (int i = nCount - 2; i >= 0; i--) {
if (ListView_GetItemState(hwndLV, i, LVIS_SELECTED)) {
// ListViewの更新
TCHAR szTitle[MAX_PATH] = {0};
LVITEM li;
memset(&li, 0, sizeof(LVITEM));
li.mask = LVIF_TEXT | LVIF_IMAGE;
li.iItem = i;
li.pszText = szTitle;
li.cchTextMax = MAX_PATH;
ListView_GetItem(hwndLV, &li);
ListView_DeleteItem(hwndLV, i);
li.iItem = i + 1;
ListView_InsertItem(hwndLV, &li);
// プレイリストの更新
m_pParent->DownFile(i);
ListView_SetItemState(hwndLV, i + 1,
LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
if (fVisible)
ListView_EnsureVisible(hwndLV, i + 1, FALSE);
}
}
}
示例2: ListView_GetItemCount
BOOL ZipDlg::ListDel()
{
int intCount = ListView_GetItemCount( hwndList) ;
BOOL blnFocus = FALSE ;
int i;
for( i = 0; i < intCount; i++)
{
// 選択されていた場合
if( ListView_GetItemState( hwndList, intCount - i - 1, LVIS_SELECTED))
{
// 後ろの要素から削除
ListView_DeleteItem( hwndList, intCount - i - 1) ;
vector<Mp3File*>::iterator p = vecFileList.begin() + (intCount - i - 1) ;
delete vecFileList[ intCount - i - 1] ;
vecFileList.erase( p) ;
continue ;
}
}
// フォーカスのあるアイテムを選択
for( i = 0; i < ListView_GetItemCount( hwndList); i++)
{
if( ListView_GetItemState( hwndList, i, LVIS_FOCUSED))
{
ListView_SetItemState( hwndList, i, LVIS_SELECTED, LVIS_SELECTED) ;
}
}
EnableWindow( hwndOk, ( ListView_GetItemCount( hwndList) != 0 ? TRUE : FALSE)) ;
return TRUE ;
}
示例3: ListView_GetItemCount
void CPpcMainWnd::OnFileDown()
{
if (!ListView_GetSelectedCount(m_hwndLV))
return;
int nCount = ListView_GetItemCount(m_hwndLV);
if (ListView_GetItemState(m_hwndLV, nCount - 1, LVIS_SELECTED))
return;
for (int i = nCount - 2; i >= 0; i--) {
if (ListView_GetItemState(m_hwndLV, i, LVIS_SELECTED))
DownFile(i);
}
}
示例4: ExchangeItem
void ExchangeItem(HWND hwndLV, int nItem1, int nItem2)
{
UINT uItem1, uItem2;
TCHAR szTitle1[MAX_PATH];
TCHAR szTitle2[MAX_PATH];
ListView_GetItemText(hwndLV, nItem1, 0, szTitle1, MAX_PATH);
ListView_GetItemText(hwndLV, nItem2, 0, szTitle2, MAX_PATH);
uItem1 = ListView_GetItemState(hwndLV, nItem1, LVIS_FOCUSED | LVIS_SELECTED);
uItem2 = ListView_GetItemState(hwndLV, nItem2, LVIS_FOCUSED | LVIS_SELECTED);
ListView_SetItemText(hwndLV, nItem1, 0, szTitle2);
ListView_SetItemText(hwndLV, nItem2, 0, szTitle1);
ListView_SetItemState(hwndLV, nItem1, uItem2, LVIS_FOCUSED | LVIS_SELECTED);
ListView_SetItemState(hwndLV, nItem2, uItem1, LVIS_FOCUSED | LVIS_SELECTED);
}
示例5: saveSelection
void saveSelection(PCSpotify spotify, HWND hwndListView, DWORD setting)
{
const int itemCount{ ListView_GetItemCount(hwndListView) };
for (int i = 0; i < itemCount; i++)
{
if (ListView_GetItemState(hwndListView, i, LVIS_SELECTED) == LVIS_SELECTED)
{
TCHAR buf[MAX_PATH]{};
LV_ITEM item{};
item.iItem = i;
item.iSubItem = 1;
item.mask = LVIF_TEXT;
item.pszText = buf;
item.cchTextMax = ARRAYSIZE(buf);
if (ListView_GetItem(hwndListView, &item))
{
std::cstring cls(item.pszText);
if (setting == S2P_SETTING_SPOTIFY)
spotify->setSpotifyClass(cls);
if (setting == S2P_SETTING_PUTTY)
spotify->setPuttyClass(cls);
}
}
}
}
示例6: PhpGetStringForSelectedResults
static PPH_STRING PhpGetStringForSelectedResults(
_In_ HWND ListViewHandle,
_In_ PPH_LIST Results,
_In_ BOOLEAN All
)
{
PH_STRING_BUILDER stringBuilder;
ULONG i;
PhInitializeStringBuilder(&stringBuilder, 0x100);
for (i = 0; i < Results->Count; i++)
{
PPH_MEMORY_RESULT result;
if (!All)
{
if (!(ListView_GetItemState(ListViewHandle, i, LVIS_SELECTED) & LVIS_SELECTED))
continue;
}
result = Results->Items[i];
PhAppendFormatStringBuilder(&stringBuilder, L"0x%Ix (%u): %s\r\n", result->Address, result->Length,
result->Display.Buffer ? result->Display.Buffer : L"");
}
return PhFinalStringBuilderString(&stringBuilder);
}
示例7: ListView_GetItemCount
unsigned pListView::selection() {
unsigned count = ListView_GetItemCount(hwnd);
for(unsigned n = 0; n < count; n++) {
if(ListView_GetItemState(hwnd, n, LVIS_SELECTED)) return n;
}
return listView.state.selection;
}
示例8: GetDlgItem
void CEffectDlg::PresetOnLoad(HWND hwndDlg)
{
HWND hwndLV = GetDlgItem(hwndDlg, IDC_LIST_PRESET);
int nCount = ListView_GetItemCount(hwndLV);
if (!nCount)
return;
TCHAR szPath[MAX_PATH];
TCHAR szName[MAX_PATH];
if (!GetPresetDir(szPath))
return;
for (int i = 0; i < nCount; i++) {
if (ListView_GetItemState(hwndLV, i, LVIS_SELECTED) == LVIS_SELECTED) {
ListView_GetItemText(hwndLV, i, 0, szName, MAX_PATH);
_tcscat(szPath, _T("\\"));
_tcscat(szPath, szName);
_tcscat(szPath, _T("."));
_tcscat(szPath, EFFECT_FILE_EXT);
LoadPresetFile(szPath);
return;
}
}
}
示例9: wbGetListViewItemChecked
BOOL wbGetListViewItemChecked(PWBOBJ pwbo, int nItem)
{
if(!pwbo || !pwbo->hwnd || !IsWindow(pwbo->hwnd))
return FALSE;
return (ListView_GetItemState(pwbo->hwnd, nItem, LVIS_STATEIMAGEMASK) & LVIS_CHECKED);
}
示例10: CustomDrawNewFile
static int CustomDrawNewFile(HWND hwnd, LPNMLVCUSTOMDRAW draw)
{
HWND hwndLV;
switch(draw->nmcd.dwDrawStage)
{
case CDDS_PREPAINT :
case CDDS_ITEMPREPAINT:
return CDRF_NOTIFYSUBITEMDRAW;
case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
hwndLV = GetDlgItem(hwnd, IDC_LVNEWPROJECT);
// we do it this way so the selection won't go away when we focus another control
if (ListView_GetItemState(hwndLV, draw->nmcd.dwItemSpec, LVIS_SELECTED) & LVIS_SELECTED)
{
draw->clrText = RetrieveSysColor(COLOR_HIGHLIGHTTEXT);
draw->clrTextBk = RetrieveSysColor(COLOR_HIGHLIGHT);
}
else
{
draw->clrText = RetrieveSysColor(COLOR_WINDOWTEXT);
draw->clrTextBk = RetrieveSysColor(COLOR_WINDOW);
}
return CDRF_NEWFONT;
default:
return CDRF_DODEFAULT;
}
}
示例11: ListSubclassProc
int CALLBACK ListSubclassProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_KEYUP:
if (wParam == VK_ESCAPE)
SendMessage(GetParent(hWnd), WM_CLOSE, 0, 0);
break;
case WM_SYSKEYDOWN:
if (wParam == 'X')
SendMessage(GetParent(hWnd), WM_CLOSE, 0, 0);
break;
case WM_LBUTTONDBLCLK:
int count = ListView_GetItemCount(hWnd);
for (int i = 0; i < count; i++) {
if (ListView_GetItemState(hWnd, i, LVIS_SELECTED)) {
TCHAR emailID[4096]; //uhh
ListView_GetItemText(hWnd, i, 2, emailID, sizeof(emailID));
exchangeServer.OpenMessage(emailID);
}
}
break;
}
return CallWindowProc(OldListProc, hWnd, msg, wParam, lParam);
}
示例12: ListView_GetItemState
void CPpcMainWnd::SortFile(int nSort)
{
#define CURRENT_MASK 0x8000
int i, nFocus = -1;
FILEINFO* p;
TCHAR szTitle[MAX_PATH];
for (i = 0; i < m_pListFile->GetCount(); i++) {
p = (FILEINFO*)m_pListFile->GetAt(i);
p->dwUser = (i == m_nCurrent) ? CURRENT_MASK : 0;
p->dwUser |= ListView_GetItemState(m_hwndLV, i, LVIS_FOCUSED | LVIS_SELECTED);
}
m_pListFile->Sort(SortCompareProc, nSort);
for (i = 0; i < m_pListFile->GetCount(); i++) {
p = (FILEINFO*)m_pListFile->GetAt(i);
if (p->dwUser & CURRENT_MASK)
m_nCurrent = i;
GetTitle(i, szTitle);
ListView_SetItemText(m_hwndLV, i, 0, szTitle);
ListView_SetItemState(m_hwndLV, i, p->dwUser, LVIS_FOCUSED | LVIS_SELECTED);
if (p->dwUser &LVIS_FOCUSED)
nFocus = i;
}
if (nFocus != -1)
ListView_EnsureVisible(m_hwndLV, nFocus, FALSE);
UpdateTrack();
}
示例13: ListView_GetItemCount
int NListView::ListView_InvertSelection(HWND hListView)
{
int nTotalItems = ListView_GetItemCount(hListView);
int nSelected = 0;
SendMessage(hListView,WM_SETREDRAW,FALSE,0);
for(int i = 0;i < nTotalItems;i++)
{
if(ListView_GetItemState(hListView,i,LVIS_SELECTED) == LVIS_SELECTED)
{
ListView_SelectItem(hListView,i,FALSE);
}
else
{
ListView_SelectItem(hListView,i,TRUE);
nSelected++;
}
}
SendMessage(hListView,WM_SETREDRAW,TRUE,0);
return nSelected;
}
示例14: CopyPopupDataToClipboard
void CopyPopupDataToClipboard(HWND hList, int selection)
{
if (!selection)
{
return;
}
if (!GetOpenClipboardWindow())
{
if (OpenClipboard(hList))
{
TCHAR buffer[2048];
buffer[0] = _T('\0');
TCHAR *clipboard;
int i;
int found = 0;
int count = ListView_GetItemCount(hList);
int textType;
#ifdef _UNICODE
textType = CF_UNICODETEXT;
#else
textType = CF_TEXT;
#endif
for (i = 0; i < count; i++)
{
if (ListView_GetItemState(hList, i, LVIS_SELECTED))
{
ListView_GetItemText(hList, i, selection - 100, buffer, 2048);
found = 1;
break;
}
}
if (found)
{
EmptyClipboard();
int len = (int)_tcslen(buffer);
HANDLE hData = GlobalAlloc(GMEM_MOVEABLE, (len + 2) * sizeof(TCHAR));
clipboard = (TCHAR *) GlobalLock(hData);
_tcsncpy(clipboard, buffer, len);
clipboard[len] = _T('\0');
GlobalUnlock(hData);
if (!SetClipboardData(textType, hData))
{
PUShowMessage("Could not set clipboard data", SM_WARNING);
}
}
CloseClipboard();
}
else{
PUShowMessage("Could not open clipboard", SM_WARNING);
}
}
else{
PUShowMessage("The clipboard is not available", SM_WARNING);
}
}
示例15: WmTabCommand_DeleteFunction
BOOL WmTabCommand_DeleteFunction(HWND, UINT, WPARAM, LPARAM)
{
HWND hWnd = GetPrgRes()->GetTabWindow(TabWindowFunctions::tab_functions);
HWND list = GetDlgItem(hWnd, IDC_FUNCTIONS_LIST);
int items = ListView_GetSelectedCount(list);
if( items == 0 )
// there must be at least one item selected
return true;
if( items > 1 )
{
// we're showing a message to confirm deleting
if( MessageBox( hWnd,
GetPrgRes()->GetLanguages()->GuiMessage(Languages::dialog_box_delete_function_confirm),
GetPrgRes()->GetLanguages()->GuiMessage(Languages::message_box_caption),
MB_ICONWARNING | MB_YESNO) == IDNO )
return true;
}
int id;
const int buffer_size = 300;
char * buffer = new char[buffer_size];
bool all_deleted = true;
GetPrgRes()->ReadVariablesFunctionsFromFile();
GetPrgRes()->GetThreadController()->StopCalculating();
for( id = ListView_GetItemCount(list)-1 ; id!=-1 ; --id )
{
if( ListView_GetItemState(list, id, LVIS_SELECTED) == LVIS_SELECTED )
{
ListView_GetItemText(list,id,0,buffer,buffer_size);
if( GetPrgRes()->GetFunctions()->Delete(buffer) != ttmath::err_ok )
all_deleted = false;
else
ListView_DeleteItem(list, id);
GetPrgRes()->FunctionsChanged();
}
}
GetPrgRes()->GetThreadController()->StartCalculating();
GetPrgRes()->SaveToFile();
delete [] buffer;
if( !all_deleted )
// there are some items which we've not deleted
// probably an internal error
MessageBox( hWnd,
GetPrgRes()->GetLanguages()->GuiMessage(Languages::dialog_box_function_not_all_deleted),
GetPrgRes()->GetLanguages()->GuiMessage(Languages::message_box_caption),
MB_ICONERROR);
return true;
}