本文整理汇总了C++中CImage::GetExporterFilterString方法的典型用法代码示例。如果您正苦于以下问题:C++ CImage::GetExporterFilterString方法的具体用法?C++ CImage::GetExporterFilterString怎么用?C++ CImage::GetExporterFilterString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CImage
的用法示例。
在下文中一共展示了CImage::GetExporterFilterString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnFileSave
void CChildView::OnFileSave()
{
CString strFilter;
CSimpleArray<GUID> aguidFileTypes;
CImage *pImage;
CString fmt;
HRESULT hResult;
INT_PTR nResult;
pImage = m_pSurface->GetImage();
ASSERT(pImage != NULL);
hResult = pImage->GetExporterFilterString( strFilter, aguidFileTypes );
if(FAILED(hResult)) {
fmt.Format(IDS_ERROR_GETEXPORTERFILTER, hResult, _com_error(hResult).ErrorMessage());
::AfxMessageBox(fmt);
return;
}
CFileDialog dlg(FALSE, NULL, NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, strFilter);
dlg.m_ofn.nFilterIndex = m_nFilterSave;
nResult = dlg.DoModal();
if( nResult != IDOK ) {
return;
}
m_nFilterSave = dlg.m_ofn.nFilterIndex;
GUID guid = m_nFilterSave > 0 ? aguidFileTypes[m_nFilterSave-1] : GUID(GUID_NULL);
CString strFileName = dlg.GetPathName();
if (dlg.GetFileExt().IsEmpty()) {
if (strFileName[strFileName.GetLength()-1] == '.') {
strFileName = strFileName.Left(strFileName.GetLength()-1);
}
CString strExt;
if (m_nFilterSave == 0) {
strExt = _T(".jpg"); // default to JPEG
}
else {
// Look up the first extension in the filters
int nCount = (m_nFilterSave*2)-1;
int nLeft = 0;
while (nCount) {
if (strFilter[nLeft++] == '|') {
nCount--;
}
}
ASSERT(nLeft < strFilter.GetLength());
strExt = strFilter.Tokenize(_T(";|"), nLeft).MakeLower();
strExt = ::PathFindExtension(strExt);
}
strFileName += strExt;
}
hResult = pImage->Save(strFileName, guid);
if(FAILED(hResult)) {
fmt.Format(IDS_ERROR_SAVE, hResult, _com_error(hResult).ErrorMessage());
::AfxMessageBox(fmt);
}
}