前面都设置好了,也从百度上找了好多样本,但是这两个函数的返回值始终是0,救命啊
代码如下:
BOOL SaveFigures(HWND hWnd)
{
static TCHAR szFileFilter[] = TEXT("All Files (*.*)\0*.*\0\0");
TCHAR szFileName[MAX_PATH], szFileTitle[MAX_PATH];
OPENFILENAME ofn;
static HANDLE hFile;
//初始化结构变量 ofn
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hWnd;
ofn.hInstance = NULL;
ofn.lpstrFilter = szFileFilter;
ofn.lpstrCustomFilter = NULL;
ofn.nMaxCustFilter = 0;
ofn.nFilterIndex = 0;
ofn.lpstrFile = NULL; //调用 GetOpenFileName 函数前设置
ofn.nMaxFile = MAX_PATH;
ofn.lpstrFileTitle = NULL; //调用 GetOpenFileName 函数前设置
ofn.nMaxFileTitle = MAX_PATH;
ofn.lpstrInitialDir = NULL;
ofn.lpstrTitle = NULL;
ofn.Flags = 0; //调用 GetOpenFileName 函数前设置
ofn.nFileOffset = 0;
ofn.nFileExtension = 0;
ofn.lpstrDefExt = TEXT("txt");
ofn.lCustData = 0L;
ofn.lpfnHook = NULL;
ofn.lpstrFile = szFileName;
ofn.lpstrFileTitle = szFileTitle;
ofn.Flags = OFN_HIDEREADONLY | OFN_CREATEPROMPT;
if (GetSaveFileName(&ofn))
{
if (szFileTitle[0])
{
hFile = CreateFile(szFileName, GENERIC_WRITE, 0,
NULL, CREATE_ALWAYS, 0, NULL);
if ((DWORD)hFile != -1)
{
DWORD dwWriten = 0;
WriteFile(hFile, &gLineCount, sizeof(UINT), &dwWriten, NULL);
WriteFile(hFile, &gLines, gLineCount * sizeof(MYLINE), &dwWriten, NULL);
WriteFile(hFile, &gRectCount, sizeof(UINT), &dwWriten, NULL);
WriteFile(hFile, &gRects, gRectCount * sizeof(MYRECT), &dwWriten, NULL);
WriteFile(hFile, &gEllipseCount, sizeof(UINT), &dwWriten, NULL);
WriteFile(hFile, &gEllipses, gEllipseCount * sizeof(MYELLIPSE), &dwWriten, NULL);
CloseHandle(hFile);
}
else
{
MessageBox(hWnd, TEXT("打开指定文件操作失败"),
TEXT("文件操作演示程序"), MB_OK | MB_ICONERROR);
}
}
}
return TRUE;
}