CSaveTextFileDialog::CSaveTextFileDialog( CTextFile::enc e, LPCTSTR lpszDefExt, LPCTSTR lpszFileName, LPCTSTR lpszFilter, CWnd* pParentWnd) : CFileDialog(FALSE, lpszDefExt, lpszFileName, OFN_EXPLORER | OFN_ENABLESIZING | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST | OFN_NOCHANGEDIR, lpszFilter, pParentWnd), m_e(e) { if (SysVersion::IsVistaOrLater()) { // customization has to be done before OnInitDialog IFileDialogCustomize* pfdc = GetIFileDialogCustomize(); pfdc->StartVisualGroup(IDS_TEXTFILE_ENC, ResStr(IDS_TEXTFILE_ENC)); pfdc->AddComboBox(IDC_COMBO1); pfdc->AddControlItem(IDC_COMBO1, CTextFile::ASCII, _T("ANSI")); pfdc->AddControlItem(IDC_COMBO1, CTextFile::LE16, _T("Unicode 16-LE")); pfdc->AddControlItem(IDC_COMBO1, CTextFile::BE16, _T("Unicode 16-BE")); pfdc->AddControlItem(IDC_COMBO1, CTextFile::UTF8, _T("UTF-8")); pfdc->SetSelectedControlItem(IDC_COMBO1, m_e); pfdc->EndVisualGroup(); pfdc->MakeProminent(IDS_TEXTFILE_ENC); pfdc->Release(); } else { SetTemplate(0, IDD_SAVETEXTFILEDIALOGTEMPL); } }
BOOL CSaveImageDialog::OnFileNameOK() { if (IsWinVistaOrLater()) { IFileDialogCustomize* pfdc = GetIFileDialogCustomize(); if (pfdc) { WCHAR* result; pfdc->GetEditBoxText(IDC_EDIT4, &result); int quality = _wtoi(result); if (quality > 0 && quality <= 100) { m_quality = quality; } CoTaskMemFree(result); pfdc->GetEditBoxText(IDC_EDIT5, &result); int level = _wtoi(result); if (level > 0 && level <= 9) { m_levelPNG = level; } CoTaskMemFree(result); pfdc->Release(); } } else { m_quality = m_qualityctrl.GetPos(); } return __super::OnFileNameOK(); }
BOOL CSaveTextFileDialog::OnFileNameOK() { if (SysVersion::IsVistaOrLater()) { DWORD result; IFileDialogCustomize* pfdc = GetIFileDialogCustomize(); pfdc->GetSelectedControlItem(IDC_COMBO1, &result); pfdc->Release(); m_e = (CTextFile::enc)result; } else { m_e = (CTextFile::enc)m_encoding.GetItemData(m_encoding.GetCurSel()); } return __super::OnFileNameOK(); }
CSaveImageDialog::CSaveImageDialog( int quality, int levelPNG, LPCTSTR lpszDefExt, LPCTSTR lpszFileName, LPCTSTR lpszFilter, CWnd* pParentWnd) : CFileDialog(FALSE, lpszDefExt, lpszFileName, OFN_EXPLORER|OFN_ENABLESIZING|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_PATHMUSTEXIST|OFN_NOCHANGEDIR, lpszFilter, pParentWnd) , m_quality(quality) , m_levelPNG(levelPNG) { if (IsWinVistaOrLater()) { IFileDialogCustomize* pfdc = GetIFileDialogCustomize(); if (pfdc) { // Create an event handling object, and hook it up to the dialog. IFileDialogEvents *pfde = NULL; HRESULT hr = _CDialogEventHandler_CreateInstance(IID_PPV_ARGS(&pfde)); if (SUCCEEDED(hr)) { // Hook up the event handler. DWORD dwCookie; hr = GetIFileSaveDialog()->Advise(pfde, &dwCookie); if (SUCCEEDED(hr)) { ; } } CString str; pfdc->StartVisualGroup(IDS_THUMB_IMAGE_QUALITY, ResStr(IDS_THUMB_IMAGE_QUALITY)); pfdc->AddText(IDS_THUMB_QUALITY, ResStr(IDS_THUMB_QUALITY)); str.Format(L"%d", max(70, min(100, m_quality))); pfdc->AddEditBox(IDC_EDIT4, str); pfdc->AddText(IDS_THUMB_LEVEL, ResStr(IDS_THUMB_LEVEL)); str.Format(L"%d", max(1, min(9, m_levelPNG))); pfdc->AddEditBox(IDC_EDIT5, str); pfdc->EndVisualGroup(); pfdc->Release(); } } else { SetTemplate(0, IDD_SAVEIMAGEDIALOGTEMPL); } }