如何获取保存对话框组合框值
How to get SaveDialogBox combobox values
如果用户没有这样做,我想设置文件的扩展名并连接文件名和扩展名组合框字符串。有没有一些简单的方法可以做到这一点,或者我需要一些"钩子"?
OPENFILENAME ofn; // common dialog box structure
TCHAR szFile[260]; // buffer for file name
HANDLE hFile; // file handle
// Initialize OPENFILENAME
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwnd;
ofn.lpstrFile = szFile;
// Set lpstrFile[0] to ' ' so that GetOpenFileName does not
// use the contents of szFile to initialize itself.
ofn.lpstrFile[0] = 0;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = _T("Текстові файли(*.txt) *.txt Word(*.doc) *.doc ");
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_EXPLORER;
if(GetSaveFileName(&ofn) == TRUE)
{
hFile = CreateFile( szFile,
GENERIC_WRITE,
0,
(LPSECURITY_ATTRIBUTES)NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
(HANDLE)NULL);
int editLen = Edit_GetTextLength(edit);
TCHAR* buffer = new TCHAR[editLen+1];
DWORD wroteLen = 0;
Edit_GetText(edit,buffer,editLen+1);
//Set extension if need
///////////////////////
if(!WriteFile(hFile,buffer,editLen*sizeof(TCHAR),&wroteLen,NULL))
MessageBox(hwnd,_T("File wasn`t saved.."),_T("Error"),MB_ICONERROR);
CloseHandle(hFile);
delete[]buffer;
感谢您的回复!
ofn.nFilterIndex
设置为文件扩展名组合框选择的从 1 开始的索引。
您要设置lpstrDefExt
成员:
从 MSDN:
类型: LPCTSTR
默认扩展名。
获取打开文件名和GetSave文件名将此扩展名附加到文件名,如果用户无法键入扩展名。此字符串可以是任意长度,但只能将附加前三个字符。字符串不应包含句点 (.)。如果此成员为 NULL,并且用户无法键入扩展名,不附加扩展名。
相关文章:
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 当对话框被接受时,如何用参数调用槽
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 如何多次询问来自QML对话框的输入?
- 选择文件对话框错误
- 自定义对话框(源自QDialog)不会关闭(Android)
- 如何在 MFC 对话框中使用 OnDraw
- 在C++中创建文件夹选取器对话框的最简单方法是什么?
- 从资源视图访问对话框时出现问题
- 如何检测窗口当前是否正在运行模式对话框?
- "最小化"按钮不会出现在 MFC 对话框中
- 如何获取QNetworkConfiguration UserChoice对话框?
- 表单显示对话框函数错误,并且不执行下面的语句
- 如何在 VC6 中的对话框中将图标设置为按钮
- C++/Win32 构造函数不使用从对话框获取的字符串初始化变量
- 在 Win32 应用中,如果未选择文件夹并且用户单击"确定",则文件夹选择对话框将关闭
- 在主窗口之前显示登录对话框并隐藏主窗口按钮
- 如何获取保存对话框组合框值
- 如何在 QModelView 中组合模式对话框编辑器和就地小组件编辑器
- Win32 API从带有两个组合框的对话框中读取组合框值