LRESULT CMainFramePage::OnNotify(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { LPPSHNOTIFY lppsn = (LPPSHNOTIFY) lParam; if (lppsn->hdr.code == PSN_APPLY) { DoDataExchange(TRUE); if (g_config.bLaunchAtStartup!=bLaunchAtStartup /*|| g_nMainFrameState != m_cbFrameState.GetCurSel()*/) { g_config.bLaunchAtStartup=bLaunchAtStartup; SetLaunchStrategy(bLaunchAtStartup); } if (nSaveAllElapse > 3600) nSaveAllElapse = 3600; if (nSaveAllElapse < 1) nSaveAllElapse = 1; int nChecked = IsDlgButtonChecked(IDC_CHECK_WORK_DIR); if (nChecked!=BST_CHECKED) { //Detect Storage Root int nRootStorageDirLen = _tcsclen(g_config.szRootStorageDir); if (nRootStorageDirLen>0 && _T(':') == g_config.szRootStorageDir[1] && INVALID_FILE_ATTRIBUTES != GetFileAttributes(g_config.szRootStorageDir)) { int len = _tcsclen(g_config.szRootStorageDir); for (int i=len-1; i>=0; --i) { if (_T('\\') == g_config.szRootStorageDir[i]) { g_config.szRootStorageDir[i] = _T('\0'); } else { break; } } g_config.bUseWorkingDirAsRootStrorageDir = false; WritePrivateProfileString(_T("MainFrame"),_T("UseWorkingDirAsRootStrorageDir"),_T("00"),g_config.strConfigFileName); WritePrivateProfileString(_T("MainFrame"),_T("RootStorageDir"),g_config.szRootStorageDir,g_config.strConfigFileName); } else { MessageBox( _T("无效“相对路径起始”,使用BooguNote.exe所在路径作为“相对路径起始”"), _T("警告"), MB_OK|MB_ICONEXCLAMATION); g_config.bUseWorkingDirAsRootStrorageDir = true; WritePrivateProfileString(_T("MainFrame"),_T("UseWorkingDirAsRootStrorageDir"),_T("01"),g_config.strConfigFileName); g_config.szRootStorageDir[0]=_T('\0'); WritePrivateProfileString(_T("MainFrame"),_T("RootStorageDir"),_T(""),g_config.strConfigFileName); } } else { g_config.bUseWorkingDirAsRootStrorageDir = true; WritePrivateProfileString(_T("MainFrame"),_T("UseWorkingDirAsRootStrorageDir"),_T("01"),g_config.strConfigFileName); g_config.szRootStorageDir[0]=_T('\0'); WritePrivateProfileString(_T("MainFrame"),_T("RootStorageDir"),_T(""),g_config.strConfigFileName); } } bHandled = FALSE; return 0; }
LRESULT CMainFramePage::OnNotify(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { LPPSHNOTIFY lppsn = (LPPSHNOTIFY) lParam; if (lppsn->hdr.code == PSN_APPLY) { DoDataExchange(TRUE); if (g_config.bLaunchAtStartup!=bLaunchAtStartup /*|| g_nMainFrameState != m_cbFrameState.GetCurSel()*/) { g_config.bLaunchAtStartup=bLaunchAtStartup; SetLaunchStrategy(bLaunchAtStartup); } //hunter : UINT_PTR WINAPI SetTimer(_In_opt_ HWND hWnd, _In_ UINT_PTR nIDEvent, _In_ UINT uElapse, _In_opt_ TIMERPROC lpTimerFunc); //uElapse [in] Type: UINT The time-out value, in milliseconds. //If uElapse is less than USER_TIMER_MINIMUM (0x0000000A), the timeout is set to USER_TIMER_MINIMUM. If uElapse is greater than USER_TIMER_MAXIMUM (0x7FFFFFFF), the timeout is set to USER_TIMER_MAXIMUM. //参见 https://msdn.microsoft.com/en-us/library/windows/desktop/ms644906%28v=vs.85%29.aspx if (nSaveAllElapse > 3600) { nSaveAllElapse = 3600; } else if (0 == nSaveAllElapse) //hunter : 等于 0 时不用修改值, 直接关闭自动保存功能 { } else if (nSaveAllElapse < 1 && 0 != nSaveAllElapse) { nSaveAllElapse = 1; } int nChecked = IsDlgButtonChecked(IDC_CHECK_WORK_DIR); if (nChecked!=BST_CHECKED) { //Detect Storage Root int nRootStorageDirLen = _tcsclen(g_config.szRootStorageDir); if (nRootStorageDirLen>0 && _T(':') == g_config.szRootStorageDir[1] && INVALID_FILE_ATTRIBUTES != GetFileAttributes(g_config.szRootStorageDir)) { int len = _tcsclen(g_config.szRootStorageDir); for (int i=len-1; i>=0; --i) { if (_T('\\') == g_config.szRootStorageDir[i]) { g_config.szRootStorageDir[i] = _T('\0'); } else { break; } } g_config.bUseWorkingDirAsRootStrorageDir = false; WritePrivateProfileString(_T("MainFrame"),_T("UseWorkingDirAsRootStrorageDir"),_T("00"),g_config.strConfigFileName); WritePrivateProfileString(_T("MainFrame"),_T("RootStorageDir"),g_config.szRootStorageDir,g_config.strConfigFileName); } else { MessageBox( _T("无效“相对路径起始”,使用BooguNote.exe所在路径作为“相对路径起始”"), _T("警告"), MB_OK|MB_ICONEXCLAMATION); g_config.bUseWorkingDirAsRootStrorageDir = true; WritePrivateProfileString(_T("MainFrame"),_T("UseWorkingDirAsRootStrorageDir"),_T("01"),g_config.strConfigFileName); g_config.szRootStorageDir[0]=_T('\0'); WritePrivateProfileString(_T("MainFrame"),_T("RootStorageDir"),_T(""),g_config.strConfigFileName); } } else { g_config.bUseWorkingDirAsRootStrorageDir = true; WritePrivateProfileString(_T("MainFrame"),_T("UseWorkingDirAsRootStrorageDir"),_T("01"),g_config.strConfigFileName); g_config.szRootStorageDir[0]=_T('\0'); WritePrivateProfileString(_T("MainFrame"),_T("RootStorageDir"),_T(""),g_config.strConfigFileName); } } bHandled = FALSE; return 0; }