mirror of
https://github.com/lltcggie/waifu2x-caffe.git
synced 2025-06-26 13:42:48 +00:00
GUIで参照ボタンを押した時に複数ファイルを選択できるように変更
This commit is contained in:
parent
bdfd6f97da
commit
09a5ed9873
@ -1860,24 +1860,10 @@ public:
|
|||||||
return 0L;
|
return 0L;
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT OnSetInputFilePath(const HDROP drop, const UINT FileNum)
|
LRESULT OnSetInputFilePath()
|
||||||
{
|
{
|
||||||
HWND hWnd = GetDlgItem(dh, IDC_EDIT_INPUT);
|
HWND hWnd = GetDlgItem(dh, IDC_EDIT_INPUT);
|
||||||
|
|
||||||
input_str_multi.clear();
|
|
||||||
|
|
||||||
for (UINT i = 0; i < FileNum; i++)
|
|
||||||
{
|
|
||||||
TCHAR szTmp[AR_PATH_MAX];
|
|
||||||
|
|
||||||
if (DragQueryFile(drop, i, szTmp, _countof(szTmp)) < _countof(szTmp))
|
|
||||||
{
|
|
||||||
szTmp[_countof(szTmp) - 1] = TEXT('\0');
|
|
||||||
|
|
||||||
input_str_multi.push_back(szTmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SyncMember(true, true);
|
SyncMember(true, true);
|
||||||
|
|
||||||
if (input_str_multi.size() > 0)
|
if (input_str_multi.size() > 0)
|
||||||
@ -1921,7 +1907,23 @@ public:
|
|||||||
OnSetInputFilePath(szTmp);
|
OnSetInputFilePath(szTmp);
|
||||||
}
|
}
|
||||||
else if (FileNum > 1)
|
else if (FileNum > 1)
|
||||||
OnSetInputFilePath((HDROP)wParam, FileNum);
|
{
|
||||||
|
input_str_multi.clear();
|
||||||
|
|
||||||
|
for (UINT i = 0; i < FileNum; i++)
|
||||||
|
{
|
||||||
|
TCHAR szTmp[AR_PATH_MAX];
|
||||||
|
|
||||||
|
if (DragQueryFile((HDROP)wParam, i, szTmp, _countof(szTmp)) < _countof(szTmp))
|
||||||
|
{
|
||||||
|
szTmp[_countof(szTmp) - 1] = TEXT('\0');
|
||||||
|
|
||||||
|
input_str_multi.push_back(szTmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
OnSetInputFilePath();
|
||||||
|
}
|
||||||
|
|
||||||
return 0L;
|
return 0L;
|
||||||
}
|
}
|
||||||
@ -1955,7 +1957,9 @@ public:
|
|||||||
|
|
||||||
OPENFILENAME ofn;
|
OPENFILENAME ofn;
|
||||||
TCHAR szPath[AR_PATH_MAX] = TEXT("");
|
TCHAR szPath[AR_PATH_MAX] = TEXT("");
|
||||||
TCHAR szFile[AR_PATH_MAX] = TEXT("");
|
|
||||||
|
static std::vector<TCHAR> szFile(AR_PATH_MAX * 100);
|
||||||
|
memset(szFile.data(), 0, szFile.size() * sizeof(TCHAR));
|
||||||
|
|
||||||
GetCurrentDirectory(_countof(szPath), szPath);
|
GetCurrentDirectory(_countof(szPath), szPath);
|
||||||
szPath[_countof(szPath) - 1] = TEXT('\0');
|
szPath[_countof(szPath) - 1] = TEXT('\0');
|
||||||
@ -2001,8 +2005,8 @@ public:
|
|||||||
|
|
||||||
ofn.lStructSize = sizeof(ofn);
|
ofn.lStructSize = sizeof(ofn);
|
||||||
ofn.hwndOwner = NULL;
|
ofn.hwndOwner = NULL;
|
||||||
ofn.lpstrFile = szFile;
|
ofn.lpstrFile = szFile.data();
|
||||||
ofn.nMaxFile = _countof(szFile);
|
ofn.nMaxFile = szFile.size();
|
||||||
ofn.lpstrFilter = szFilter;
|
ofn.lpstrFilter = szFilter;
|
||||||
ofn.nFilterIndex = 1;
|
ofn.nFilterIndex = 1;
|
||||||
ofn.lpstrTitle = langStringList.GetString(L"MessageTitleInputDialog").c_str();
|
ofn.lpstrTitle = langStringList.GetString(L"MessageTitleInputDialog").c_str();
|
||||||
@ -2017,11 +2021,48 @@ public:
|
|||||||
ofn.lCustData = 0;
|
ofn.lCustData = 0;
|
||||||
ofn.lpfnHook = OFNHookProcIn;
|
ofn.lpfnHook = OFNHookProcIn;
|
||||||
ofn.lpTemplateName = 0;
|
ofn.lpTemplateName = 0;
|
||||||
ofn.Flags = OFN_HIDEREADONLY | OFN_NOVALIDATE | OFN_PATHMUSTEXIST | OFN_READONLY | OFN_EXPLORER | OFN_ENABLEHOOK;
|
ofn.Flags = OFN_HIDEREADONLY | OFN_NOVALIDATE | OFN_PATHMUSTEXIST | OFN_READONLY | OFN_EXPLORER | OFN_ENABLEHOOK | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT;
|
||||||
if (GetOpenFileName(&ofn))
|
if (GetOpenFileName(&ofn))
|
||||||
{
|
{
|
||||||
szFile[_countof(szFile) - 1] = TEXT('\0');
|
szFile[szFile.size() - 1] = TEXT('\0');
|
||||||
OnSetInputFilePath(szFile);
|
|
||||||
|
input_str_multi.clear();
|
||||||
|
|
||||||
|
const TCHAR * ptr = szFile.data();
|
||||||
|
|
||||||
|
const auto firstLen = _tcslen(ptr);
|
||||||
|
if (firstLen > 0)
|
||||||
|
{
|
||||||
|
if(firstLen + 2 >= szFile.size() || ptr[firstLen + 1] == '\0')
|
||||||
|
OnSetInputFilePath(ptr);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const TCHAR * end = ptr + szFile.size();
|
||||||
|
|
||||||
|
const tstring baseDir(ptr);
|
||||||
|
ptr += firstLen + 1;
|
||||||
|
|
||||||
|
while (ptr < end)
|
||||||
|
{
|
||||||
|
if (*ptr == TEXT('\0'))
|
||||||
|
break;
|
||||||
|
|
||||||
|
TCHAR szTmp[AR_PATH_MAX];
|
||||||
|
|
||||||
|
const auto len = _tcslen(ptr);
|
||||||
|
memcpy(szTmp, ptr, len * sizeof(TCHAR));
|
||||||
|
szTmp[len] = TEXT('\0');
|
||||||
|
|
||||||
|
const auto str = baseDir + TEXT('\\') + szTmp;
|
||||||
|
|
||||||
|
input_str_multi.push_back(str);
|
||||||
|
|
||||||
|
ptr += len + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
OnSetInputFilePath();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user