Win32另存为指定文件格式的文件对话框
来源:互联网 发布:海南软件职业技术学院 编辑:程序博客网 时间:2024/06/03 22:57
Win32另存为指定文件格式的文件对话框
OPENFILENAME ofn = { 0 }; ofn.lStructSize = sizeof(OPENFILENAME); CString strFilter = _T("PNG 文件(*.png)\0*.png\0JPG 文件(*.jpg)\0*.jpg\0BMP 文件(*.bmp)\0*.bmp\0\0");// 防止在弹出文件对话框时,去操作主窗口,所以先disable掉,等文件对话框关闭后再恢复::EnableWindow( this->m_hWnd, FALSE );ofn.lpstrFile = (LPTSTR)(LPCTSTR)strDefaultName; ofn.lpstrFilter = strFilter;ofn.nMaxFile = MAX_PATH; ofn.hwndOwner = m_pCatchToobarDlg->m_hWnd;ofn.lpfnHook = OFNHookProc; // 设置回调函数,修改文件对话框的位置ofn.Flags = OFN_EXPLORER | OFN_ENABLEHOOK | OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT; BOOL bRet = ::GetSaveFileName( &ofn ); if( bRet ){::EnableWindow( this->m_hWnd, TRUE );CString csFilePath = ofn.lpstrFile;// 此处判断用户输入的文件名,如果文件名后没有文件后缀名,则加上对应的后缀名CString csFileExt = _T("");int nPos = csFilePath.ReverseFind( _T('.') ); // 从后面找到“.”if ( nPos != -1 ){csFileExt = csFilePath.Right( csFilePath.GetLength() - nPos - 1 );}if ( csFileExt != _T("bmp") && csFileExt != _T("png") && csFileExt != _T("jpg")) // png{DWORD filter_num = ofn.nFilterIndex;if ( filter_num == 1 ){csFilePath += _T(".png");}else if ( filter_num == 2 ){csFilePath += _T(".jpg");}else if ( filter_num == 3 ){csFilePath += _T(".bmp");}else{csFilePath += _T(".png");}}SaveHBitmapToFile( hBitmap, csFilePath );
过滤要保存的文件格式类型,注意过滤字符串书写格式。最后函数SaveHBitmapToFile是根据选择保存的图像格式,保存图像。
效果图:
0 0
- Win32另存为指定文件格式的文件对话框
- Win32打开指定文件格式类型的文件对话框
- “文件另存为。。。”对话框
- MFC弹出另存为文件对话框
- 保存文件对话框SaveFileDialog (另存为对话框)
- 弹出另存为窗口下载指定目录的文件
- 添加头信息,为"文件下载/另存为"对话框指定默认文件名.........................
- 如何弹出文件另存为对话框CFileDialog
- Servlet 中直接弹出"文件另存为..."对话框
- MFC:用另存为对话框保存文件
- WIN32的保存文件对话框GetSaveFileName
- 保存,将Excel文件另存为指定格式
- java 实现文件下载的时候,避免浏览器自动打开文件,而是出现另存为对话框
- Qt将文件保存到指定目录下(另存为的功能)
- Qt将文件保存到指定目录下(另存为的功能)
- Qt将文件保存到指定目录下(另存为的功能)
- [置顶] Qt将文件保存到指定目录下(另存为的功能) .
- Java 遍历文件夹 取出指定文件格式的文件
- iOS Apple Pay详解以及处理支付逻辑(附带Demo)
- Jquery帮助文档
- mini2440 X35上做韦东山LCD裸板程序
- RabbitMQ学习之messageconver插件实现(Gson)
- 什么是session
- Win32另存为指定文件格式的文件对话框
- jQuery eq()方法 =》加载页面时单选框默认选中
- 数轴上从左到右有n个点a[0],a[1]…,a[n-1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。要求算法复杂度为o(n)。
- qt 设置窗口圆角
- 当网页加载很慢的时候,应如何分析其原因并解决问题?
- 最终实现任意个数字排序
- Linux 常用命令
- iOS苹果账号/证书/推送证书之我见
- hdu3746(next数组解决)