浏览代码

完成指定路径

scbc.sat2 5 年之前
父节点
当前提交
2966dc8124
共有 3 个文件被更改,包括 39 次插入8 次删除
  1. 33 7
      SATHelper/SATHelper/UB530View.cpp
  2. 1 0
      SATHelper/SATHelper/UB530View.h
  3. 5 1
      SATHelper/SATHelper/resource.h

+ 33 - 7
SATHelper/SATHelper/UB530View.cpp

@@ -968,6 +968,10 @@ void CUB530View::OnCutBmp()
 	{
 		CaptureSingleImageAutoName(g_pMainFrame->m_szCurMenuTreeDir, FALSE);
 	}
+	else if (m_shotDir == ShotSpec)
+	{
+		CaptureSingleImageAutoName(m_szSpecDir, FALSE);
+	}
 }
 
 
@@ -981,6 +985,10 @@ void CUB530View::OnCutJpg()
 	{
 		CaptureSingleImageAutoName(g_pMainFrame->m_szCurMenuTreeDir, TRUE);
 	}
+	else if (m_shotDir == ShotSpec)
+	{
+		CaptureSingleImageAutoName(m_szSpecDir, TRUE);
+	}
 }
 
 
@@ -1217,15 +1225,33 @@ void CUB530View::OnCheckShotSpec()
 	ASSERT_VALID(pRibbon);
 	CMFCRibbonButton* pCheck = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK_SHOT_SPEC));
 	if (pCheck)
-	{
-		if (pCheck->IsChecked())
-		{
-			m_shotDir = ShotLocal;
+	{		
+		CFileFind finder;
+		CString path;
+		BOOL fileExist;
+
+		// 获取特定文件夹的LPITEMIDLIST,可以将之理解为HANDLE  
+		// 所谓的特定文件夹,你可以用CSIDL_XXX来检索之。  
+		LPITEMIDLIST rootLoation;
+		SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &rootLoation);
+		if (rootLoation == NULL) {
+			// unkown error  
+			return;
 		}
-		else
+		// 配置对话框  
+		BROWSEINFO bi;
+		ZeroMemory(&bi, sizeof(bi));
+		bi.pidlRoot = rootLoation; // 文件夹对话框之根目录,不指定的话则为我的电脑  
+		bi.lpszTitle = _T("请选择截图保存路径……"); // 可以不指定  
+		bi.hwndOwner = m_hWnd;
+
+		// 打开对话框, 有点像DoModal  
+		LPITEMIDLIST targetLocation = SHBrowseForFolder(&bi);
+		if (targetLocation != NULL) 
 		{
-			//m_shotDir = ShotSpec;
-			AfxMessageBox(_T("该功能暂时未开发……"));
+			m_shotDir = ShotSpec;
+			SHGetPathFromIDList(targetLocation, m_szSpecDir); 
+			_tcscat_s(m_szSpecDir, _T("\\"));
 		}
 	}
 }

+ 1 - 0
SATHelper/SATHelper/UB530View.h

@@ -141,6 +141,7 @@ public:
 		ShotSpec = 2
 	};
 	SHOTDir m_shotDir;
+	TCHAR m_szSpecDir[MAX_PATH];
 
 	void SetRibbonStatusBarText(CString strText, int uId);
 	friend class CMemoryClient;

+ 5 - 1
SATHelper/SATHelper/resource.h

@@ -159,13 +159,17 @@
 #define ID_BUTTON2                      32805
 #define ID_COMBO1_22293                 32806
 #define ID_CHECK1_22293                 32807
+#define ID_CHECK2                       32818
+#define ID_CHECK_SHOT_SPEC              32818
+#define ID_CHECK_SHOT_LOCAL             32819
+#define ID_CHECK_SHOT_SYSTEM            32820
 
 // Next default values for new objects
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        317
-#define _APS_NEXT_COMMAND_VALUE         32818
+#define _APS_NEXT_COMMAND_VALUE         32821
 #define _APS_NEXT_CONTROL_VALUE         1007
 #define _APS_NEXT_SYMED_VALUE           310
 #endif