本文做一个资源管理器。
目前的问题是:当我修改文件或者文件夹名字之后,焦点就丢掉了。
我的需要是: 当我修改文件或者文件夹名字之后,焦点依然停留在当前我被修改的文件或者文件夹上。
我修改文件夹的函数是这样写的:
bool RenameFileOrDirectoryFeedback(long lSize, int nLen)
{ char *szContent = new char [nLen+1];
if (szContent == NULL) return false;
memset(szContent, 0, nLen+1);
m_pCC->ReadExact(szContent, nLen);
char szStatus[512]; char *p = strrchr(szContent, '*');
char szOldName[MAX_PATH];
char szCurrentName[MAX_PATH]; strcpy(szCurrentName, p + 1);
*p = '\0';
strcpy(szOldName, szContent); if (lSize == -1 || p == NULL)
{
sprintf(szStatus, " %s < %s > %s", sz_M5, szOldName, sz_H30);
SetStatus(szStatus);
delete [] szContent;
return false;
} sprintf(szStatus, " %s < %s > %s < %s >", sz_M8 , szOldName, sz_M7, szCurrentName);
SetStatus(szStatus);
// Refresh the list
ListView_DeleteAllItems(GetDlgItem(hWnd, IDC_REMOTE_FILELIST));
RequestRemoteDirectoryContent(hWnd, "");
// hanker 应该是在这个地方设置焦点,我的思路是 在刷新窗口之后,检索到szCurrentName这个文件,然后把焦点设置到这个上面,有更加好的方法吗?
delete [] szContent;
return true;
}
目前的问题是:当我修改文件或者文件夹名字之后,焦点就丢掉了。
我的需要是: 当我修改文件或者文件夹名字之后,焦点依然停留在当前我被修改的文件或者文件夹上。
我修改文件夹的函数是这样写的:
bool RenameFileOrDirectoryFeedback(long lSize, int nLen)
{ char *szContent = new char [nLen+1];
if (szContent == NULL) return false;
memset(szContent, 0, nLen+1);
m_pCC->ReadExact(szContent, nLen);
char szStatus[512]; char *p = strrchr(szContent, '*');
char szOldName[MAX_PATH];
char szCurrentName[MAX_PATH]; strcpy(szCurrentName, p + 1);
*p = '\0';
strcpy(szOldName, szContent); if (lSize == -1 || p == NULL)
{
sprintf(szStatus, " %s < %s > %s", sz_M5, szOldName, sz_H30);
SetStatus(szStatus);
delete [] szContent;
return false;
} sprintf(szStatus, " %s < %s > %s < %s >", sz_M8 , szOldName, sz_M7, szCurrentName);
SetStatus(szStatus);
// Refresh the list
ListView_DeleteAllItems(GetDlgItem(hWnd, IDC_REMOTE_FILELIST));
RequestRemoteDirectoryContent(hWnd, "");
// hanker 应该是在这个地方设置焦点,我的思路是 在刷新窗口之后,检索到szCurrentName这个文件,然后把焦点设置到这个上面,有更加好的方法吗?
delete [] szContent;
return true;
}
ListView_SetItemState(GetDlgItem(hWnd, IDC_LOCAL_FILELIST), 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED)
可以在当前ListView中,使得 焦点指向 第一个,用〇表示!
咨询一下:
加入我把 aaa.doc 改成 111.doc
然后我刷新,ListView,我如何得到 111.doc中在 ListView中的序号!
当然对于文件夹也一样!