Exemplo n.º 1
0
void TraversingResource::GetResFiles(LPCTSTR folder_path, const vector<LPCTSTR> *ex_names, vector<TCHAR *> &files, bool clean /* = true */)
{
  if (clean)
    files.clear();

  /* lambda 表达式: 如果是需求的文件类型,返回true */
  auto IsExName = [ex_names](LPCTSTR ex_name) -> bool {
    if (ex_names->empty())
      return true;
    for (auto iter : *ex_names) {
      if (!lstrcmp(ex_name, iter))
        return true;
    }
    return false;
  };

  for (FirstFile(folder_path); IsOK(); NextFile()) {
    LPCTSTR ex_name = ::PathFindExtension(GetCurFile().cFileName);
    if ( !(GetCurFile().dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)  // 不是文件夹
      && IsExName(ex_name)) {     // 扩展名符合
      TCHAR *file_name = new TCHAR[MAX_PATH];
      lstrcpy(file_name, GetCurFile().cFileName);
      files.push_back(file_name);
    }
  }
}
Exemplo n.º 2
0
int GDocApp<OptionsFmt>::OnCommand(int Cmd, int Event, OsView Window)
{
	switch (Cmd)
	{
		case IDM_SAVE:
		{
			if (!GetCurFile())
			{
				GMru::OnCommand(IDM_SAVEAS);
				return 0;
			}
			else
			{
				_SaveFile(GetCurFile());
				return 0;
			}
			break;
		}
		case IDM_CLOSE:
		{
			if (SetDirty(false))
				_Close();
			break;
		}
		case IDM_EXIT:
		{
			LgiCloseApp();
			break;
		}
	}

	GMru::OnCommand(Cmd);
	return 0;
}